From 648613a12b66c311ff8ebc8a18bb71d1d6de962d Mon Sep 17 00:00:00 2001 From: AjmalCybro Date: Thu, 13 Jul 2023 20:23:31 +0530 Subject: [PATCH] Jul 13 : [ADD] Initial Commit 'pos_add_product_webcam_barcode' --- pos_add_product_webcam_barcode/README.rst | 47 + pos_add_product_webcam_barcode/__init__.py | 21 + .../__manifest__.py | 46 + .../doc/RELEASE_NOTES.md | 7 + .../static/description/assets/icons/check.png | Bin 0 -> 3676 bytes .../description/assets/icons/chevron.png | Bin 0 -> 310 bytes .../static/description/assets/icons/cogs.png | Bin 0 -> 1377 bytes .../description/assets/icons/consultation.png | Bin 0 -> 1458 bytes .../description/assets/icons/ecom-black.png | Bin 0 -> 576 bytes .../assets/icons/education-black.png | Bin 0 -> 733 bytes .../description/assets/icons/hotel-black.png | Bin 0 -> 911 bytes .../description/assets/icons/license.png | Bin 0 -> 1095 bytes .../description/assets/icons/lifebuoy.png | Bin 0 -> 1199 bytes .../static/description/assets/icons/logo.png | Bin 0 -> 3452 bytes .../assets/icons/manufacturing-black.png | Bin 0 -> 673 bytes .../description/assets/icons/pos-black.png | Bin 0 -> 878 bytes .../description/assets/icons/puzzle.png | Bin 0 -> 653 bytes .../assets/icons/restaurant-black.png | Bin 0 -> 905 bytes .../assets/icons/service-black.png | Bin 0 -> 839 bytes .../assets/icons/trading-black.png | Bin 0 -> 427 bytes .../description/assets/icons/training.png | Bin 0 -> 627 bytes .../description/assets/icons/update.png | Bin 0 -> 1225 bytes .../static/description/assets/icons/user.png | Bin 0 -> 988 bytes .../description/assets/icons/wrench.png | Bin 0 -> 1205 bytes .../description/assets/misc/categories.png | Bin 0 -> 1532 bytes .../description/assets/misc/check-box.png | Bin 0 -> 1118 bytes .../description/assets/misc/compass.png | Bin 0 -> 1931 bytes .../description/assets/misc/corporate.png | Bin 0 -> 1177 bytes .../assets/misc/customer-support.png | Bin 0 -> 2136 bytes .../description/assets/misc/cybrosys-logo.png | Bin 0 -> 4496 bytes .../description/assets/misc/features.png | Bin 0 -> 589 bytes .../static/description/assets/misc/logo.png | Bin 0 -> 3452 bytes .../description/assets/misc/pictures.png | Bin 0 -> 1692 bytes .../description/assets/misc/pie-chart.png | Bin 0 -> 2338 bytes .../description/assets/misc/right-arrow.png | Bin 0 -> 967 bytes .../static/description/assets/misc/star.png | Bin 0 -> 1642 bytes .../description/assets/misc/support.png | Bin 0 -> 3892 bytes .../description/assets/misc/whatsapp.png | Bin 0 -> 5097 bytes .../assets/modules/approval_image.png | Bin 0 -> 51818 bytes .../assets/modules/budget_image.png | Bin 0 -> 62195 bytes .../assets/modules/export_image.png | Bin 0 -> 61925 bytes .../assets/modules/magento_image.png | Bin 0 -> 60354 bytes .../description/assets/modules/pos_image.png | Bin 0 -> 53403 bytes .../assets/modules/shopify_image.png | Bin 0 -> 55162 bytes .../description/assets/screenshots/1.png | Bin 0 -> 179993 bytes .../description/assets/screenshots/hero.gif | Bin 0 -> 131940 bytes .../description/assets/screenshots/img_2.png | Bin 0 -> 66135 bytes .../description/assets/screenshots/img_3.png | Bin 0 -> 197768 bytes .../description/assets/screenshots/img_4.png | Bin 0 -> 73309 bytes .../static/description/banner.png | Bin 0 -> 53140 bytes .../static/description/icon.png | Bin 0 -> 16932 bytes .../static/description/index.html | 605 + .../static/src/css/dialog.css | 13 + .../static/src/js/PosBarcode.js | 115 + .../static/src/js/quagga.js | 11583 ++++++++++++++++ .../static/src/xml/PosBarcode.xml | 9 + .../views/assets.xml | 11 + 57 files changed, 12457 insertions(+) create mode 100644 pos_add_product_webcam_barcode/README.rst create mode 100644 pos_add_product_webcam_barcode/__init__.py create mode 100644 pos_add_product_webcam_barcode/__manifest__.py create mode 100644 pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/check.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/chevron.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/cogs.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/consultation.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/ecom-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/education-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/hotel-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/license.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/lifebuoy.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/logo.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/manufacturing-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/pos-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/puzzle.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/restaurant-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/service-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/trading-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/training.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/update.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/user.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/wrench.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/categories.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/check-box.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/compass.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/corporate.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/customer-support.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/cybrosys-logo.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/features.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/logo.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/pictures.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/pie-chart.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/right-arrow.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/star.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/support.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/whatsapp.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/approval_image.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/budget_image.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/export_image.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/magento_image.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/pos_image.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/shopify_image.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/1.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/hero.gif create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/img_2.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/img_3.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/img_4.png create mode 100644 pos_add_product_webcam_barcode/static/description/banner.png create mode 100644 pos_add_product_webcam_barcode/static/description/icon.png create mode 100644 pos_add_product_webcam_barcode/static/description/index.html create mode 100644 pos_add_product_webcam_barcode/static/src/css/dialog.css create mode 100644 pos_add_product_webcam_barcode/static/src/js/PosBarcode.js create mode 100644 pos_add_product_webcam_barcode/static/src/js/quagga.js create mode 100644 pos_add_product_webcam_barcode/static/src/xml/PosBarcode.xml create mode 100644 pos_add_product_webcam_barcode/views/assets.xml diff --git a/pos_add_product_webcam_barcode/README.rst b/pos_add_product_webcam_barcode/README.rst new file mode 100644 index 000000000..dd0e698b9 --- /dev/null +++ b/pos_add_product_webcam_barcode/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Add Product using Webcam Barcode in Pos +======================================= +* This module helps you to scan a product barcode using Webcam and add the products to pos order-line. + +Installation +============ + - www.odoo.com/documentation/14.0/setup/install.html + - Install our custom addon + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.odoo.com/documentation/user/14.0/legal/licenses/licenses.html) + +Company +------- +`Cybrosys Techno Solutions `__ + +Credits +------- +`Cybrosys Techno Solutions `__ + Developer : Muhammed Dilshad Tk + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if +your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/pos_add_product_webcam_barcode/__init__.py b/pos_add_product_webcam_barcode/__init__.py new file mode 100644 index 000000000..0eb3ca20d --- /dev/null +++ b/pos_add_product_webcam_barcode/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (odoo@cybrosys.com) +# +# You can modify it under the terms of the General Public License, (LGPL v3), +# Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# General Public License, Version 3 (LGPL v3) for more details. +# +# You should have received a copy of the General Public License, +# Version 3 (LGPL v3) along with this program. +# If not, see . +# +################################################################################ diff --git a/pos_add_product_webcam_barcode/__manifest__.py b/pos_add_product_webcam_barcode/__manifest__.py new file mode 100644 index 000000000..0e9b0cf05 --- /dev/null +++ b/pos_add_product_webcam_barcode/__manifest__.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (odoo@cybrosys.com) +# +# You can modify it under the terms of the General Public License, (LGPL v3), +# Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# General Public License, Version 3 (LGPL v3) for more details. +# +# You should have received a copy of the General Public License, Version 3 +# (LGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + 'name': "Add Product using Webcam Barcode in Pos", + 'version': '14.0.1.0.0', + 'category': 'Point of Sale', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'summary': 'Add the order-line using webcam scanner by adding barcode ' + 'of products', + 'description': """This module helps you to scan a product barcode using + Webcam and add the products to pos order-line.""", + 'images': ['static/description/banner.png'], + 'depends': ['base', 'point_of_sale'], + 'qweb': [ + 'static/src/xml/PosBarcode.xml', + ], + 'data': [ + 'views/assets.xml', + ], + 'license': 'LGPL-3', + 'application': False, + 'installable': True, + 'auto_install': False, +} diff --git a/pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md b/pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..19a01eccc --- /dev/null +++ b/pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 14.04.2023 +#### Version 14.0.1.0.0 +#### ADD + +- Initial commit for Add Product using Webcam Barcode in Pos \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/check.png b/pos_add_product_webcam_barcode/static/description/assets/icons/check.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e85f51d612c626d167e4def7bccdbe1d6d17bd GIT binary patch literal 3676 zcmcgvdsGuw8jpg4iY%zK;)6~HwPkUVnaO)JDiRS~W01#+Tdm%CgiJ{?ab|#k+GElB zs)m`Fq^5i_*c#09+YQPFKr}nwM5Uo-TAL;V~rhtuFtx>&0g#C#25Hk&m#sUb-WA~31MBLg4ikrG=iSUHIid9Tb1 z9z?MSXrWNHppa=`3T|)6tVasU1O?OhfLBAPab-$=Aj^bs-a^skcg`{z&c(Sok1Rnf z5yC>1Y_<@*U9)a?2rbEDiXfxl+}cG;IVE0Blf_9wp~!G!ilE2DR$`Kz#XXhg1%^X- zXt38Q$b#e)IuIe${frbc@94mx((??I^YI-(m7WmPOQnh&kOeVE5L~UXliA7*Aqh2! zygrHdutKqvq)a?GfU^Rbv!F1L2n;u3q&9~jDV>4R8gLYj5g8$Gdf5;PM8e91VHO}tH2a0L8XijPj4WT@OfXUAT zJnhf*@K9tDMU;r4{0y>T@q!c#dc9U3Y|rFt)F2wJDdXk4$u2;9M#3=B({jWE?ZT8AH% zg#Ynm7{OD-iERSQ3q%07QcjdCs6!Oo2=IDcJmb$VO_7HU?ogqWL}USZT7WtfjpanX zO$@a45~6_o7yUgq;$EyC{@)i#qZ|N_R=_bJvw}bMOMXYUaeIWvk1PbW5LY2pwz5%~)8GxdCY^PssXRx5eoz zoO^~fem~r``@rOd6TkZU8il$gE8}Oz-;cgl{mIK`Pdv;QZ%-|s z|GM{J*isd7WKnONICtpgNp#AiUeQbceyF&&T9d++kK5LH+xFP3BM=)2;)S)A$sTiU6of)b*Y#j{o#0g@7kQ@$&^?Xwd#C) z*?`OMhxblls7-52Hx9e<G~?b~~OYW?LWQyXXH zri{BfJ2omM>(N5CCh8@jy!2dILd_cwrrn5}-u1H`e?0w$}WEW5P9XVW2;W}-E(N#mKb@>!_?9;7EcMc z{$}01S5Kra9GY1>s2abs9zQ>M^!2#Wa|ZgdtCP$7HxD_{=b{ky&9Q_CH6!ldap(T* zf}8Jcd_*M`3GY@f|5wb3WaRUu4KwLk^ZH)Cx@g9Gqrd$0VaEMIzioWH^;l}xdpp8T z8}{xXW=4I#;LY(#$DH;dANHu-yZ<(gnNzG17ONUnb$vS3 zb*fD2Tp8xe4);ae*%)~z`kF2F+Q6#SXw|Se#$N^e?zR2i*OIq99+Iy7|H~LN!Mc6) H^s@f|!zCx= literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/chevron.png b/pos_add_product_webcam_barcode/static/description/assets/icons/chevron.png new file mode 100644 index 0000000000000000000000000000000000000000..2089293d6ad94cfc015cc0a8c07bb03efd4a689e GIT binary patch literal 310 zcmV-60m=S}P)fLA$g5CzAh99{FF(tp zz^tD4))$4c^0SZV9_X~njUYum@4i`~v!i=obU%PG(6q`OMK>{HG>r}*tHKc2@w+qg z7|l>B76qkX(U2E&K_1Nf!JbCtpGzwGSJ~CkU>QcDY&q>lnbwQm<|2>>iH5vL6qJIP zp;W{K-Snrb@Z2gLMVZAQQ5jU>DXT)0mtk@hpq-Sb{2q6{0V4Z;tNXT3P5=M^07*qo IM6N<$f_?6Y+W-In literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/cogs.png b/pos_add_product_webcam_barcode/static/description/assets/icons/cogs.png new file mode 100644 index 0000000000000000000000000000000000000000..95d0bad62cf22361b148e1d6cefe2ceab605955d GIT binary patch literal 1377 zcmV-n1)lneP)lH5n~Zj$eiG;8wLI!*reT1_VfljL=sA}=JrOptsX2RfC&)+l61t|6JPeb$mZ z6v1wNClWXiLSlOh+mR64U7bjvhva*zJ0HRRaDbgl@(q$*^PYf*$fE&7)c&&!Rfm?&yLyFbQ?2&R6W6v@rWu!;bZU9|_! z4Je^Q5$r!vH2{)*ok-wK1%Wz7TG;LgvHhtN39JtxLC&_yAzs|bhFaWtFLrukMR}l_ zP~>z0rF26#(W+H@aXx?6lf(f454Uv()R+QrlZafX3t}g5wp6-Blj;u$XaE#h->+xC z005Fp0GtMpYoBiuo)VG0UP0_GltOix%1(%-bKgbA0o1pB3&6VoRs+}%fFWUi1MmQV zmjH~{WZwYT7ng4njIz1iD4PuYIM&NvU6NVO4kNuj`IZ(nzL#XTM^~@uFGT>-aT6dh zAgaP68%9MDu}+cu7uohT0RHqW9d8lhD-kJqd^i9;Rw)OT!X*D$Y?MvID9;=%I@23T z$~m4}V3f^0BG}d<_%@?#emG&81LI_NvTQ!T$gzGzil=|K?VCM%e*mZ`d`!0R--N(> zX_T!|fX{f;z6ZDfz>JL{bFu7UqLI0BExN7c!HmOYg;$V?QB4==-_|4!R<1p=W!b zXM0?cbrc+q5buUe#ZpdV?VzCxk-Rm+);3(wb8q`(#{e8FI_3z8RwJLQk>}&nRHK0| zNhvzkFo4$qbT=sr4i@y>Bdr`7j(HfwmH^uc7xH9%r%nnDB_ty3>&opGxGMoP9kf;< zd%_$N;{SC3V62>WZcCaxpx6frT|FlOj5R5zGbh3vrqY>j1H`{Bkt_d-PcIzGcOeS& z0OimpMB04AZ5M$FkksHx)9_uX*rDTKrDER^Aij2r>}i8vD4G(OFwKFYV|^yVP5w23 z`asH~GaMjZ={ojt!?Lb#lcy352^1ZBLpqIV|5 zLfz5N09ce%03XI(J-h5`5#>QuTr`wWt<}xj9|=Odm?U{1pyiQF6&>pYfaOUB0`PfX zSMHvKeKvO?5vfw7-bq{v4vAnDh^?3%L|Q@w6Pmd9iD(;0IfB{ww?bB5NS1mno@&9c zXC4%!P8Bklxq~Ew%%g071mXR`&iMY{dhWR!JtLt}njRD_-Cxi%N0X&qj~Nq_rI}Yn za8e0TJ(H#J00000NkvXXu0mjfE=YKA literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/consultation.png b/pos_add_product_webcam_barcode/static/description/assets/icons/consultation.png new file mode 100644 index 0000000000000000000000000000000000000000..8319d4baa09d6afac9362dff318f63a0f96f555e GIT binary patch literal 1458 zcmV;j1x@;iP)fo-7eN@Nx;}%h)9e^5-C?E zsEH&b3Z#%2B-}L7v^LRRD&QZ8A<7MshM0yxF7rU)x4)gW;*vW;3 z#hX3&)M|C@Hzy`0dbVF71Cp#6E*?;(1E5ZgN|t#IpsRseZTS;fmL2OZ%G1F2%+iN5 z?1unK-3Ni+4&6W$B|ic7=Z$mSG;E8PyRX^_00(R zZhUjoBfjtdy_aS#1FePDP8??a5dOFCh z*MWRv)G@zc9y@oAQ6L5)gF{}MFZh1tt%7=2kn>q6`mgJDye)VpNyeX>nXy(;k)8%5c~P{u8)+YKOVK2Ka7pM_X}a`O zk#~c24MYp^y)u3b+*+!2>R#%t}=?wy_< zpYKn-%7CQNC`x``VuKC^f_Kx@zC4JDHDk0HCO^O4#RC{@^;{j6<{9 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/ecom-black.png b/pos_add_product_webcam_barcode/static/description/assets/icons/ecom-black.png new file mode 100644 index 0000000000000000000000000000000000000000..a9385ff13f696e96d517a56ce2b2ff7d282c748a GIT binary patch literal 576 zcmV-G0>Ax5}Z)a!cc0ra5uqqg5lnhXD zTbP_`oKdQ!!sJxrjN&KdC#M>hn6H53Z@_@W06J)|I<5r7bODP7TpFfK@D$$y9ro1J z_#n7|3NU9+Eg3t67i6kk1G7mAm}&y~>LPq;59$DNz9rz_PKFAe2JQYcbvs+lNHw^F+;#7cCP*z(AJ2&$C0H1W+ddn*~CoC?@7snGmV!9 z<==r}6|tyA>`?)>6k{b=2d<=(_5rWxzxsKgUs~Q{+du)!y5s>SG|Pu>T2kaR7OcV&-NYURtom{p?~^a9V+ z7O-a3C?=EC%HIJ!R*hUb72^tZzf-`AuuDDSkJJnF?!xs=oN3JbnbTGPz&Os^S>dl1 z(84w;APbb-b_k@KC|~4YkNmz@^KPH*e34{*2J>2yF9_24A}NIoShST-^{Ye_(vLmm zd~pgm3F$kIkw;g)NYXe9tbV#5fWaonr$h>8ffe1h+u&f*`C7F2cl-b`l5Ye!`u+O= O0000##3Xw+{I#MbTYoZ-I?3FUBiCh!QRfyd*8S0 zzBhAFP*6~?-lzdrfLY+Hwprk^9?LDGz;$2=SdFk>z#U*LBaI?QQKD9e7VcUbxCb21 zK<^(;Xc0+8N7+;0G_au`qDwm1ixh;r_7XS;lzSn3Ks%r7fpFK}0T+SIX$T+G&OY=( zxNCJ_5*Q8nGpO{QD=gKm=?w>jvsI4EeCbfxmVgL)==l)8DLS{4AE!e?Z8#kPQdt|>qP=~ z0Jlc(3Gg?f*M1lL)`j_1YkWB%UdQh2b66h*ZnCzsy7n_B0ckvzW`}^r+Q1XwyiR6N z+Zb>`kF^u{kzSF3ZWCxE2%MHJ3h_5t<4fjdNthVL50AOsk~o%60t*2`LXkdVyV0$h z3!el&2Fvm1lW@sw^on`m-Vx`wwB6`P4R}rO zE6^)ow-A5YnfJ&y0Ye!WLUqzpz$M^$fY4`p?Mdxxh|Yg2?gAd7ipc|DXJ`UZ90Kkq z5IzMQOgng*oJH-CT;UDiOoqC=IL6w|-va-Bgt_N1s&c*2*98Ry1?!OCgV~htO4sqyP_dDm_d+wti*Wu|Jegr#e_!#{@68vYp!)bLlu6Zk`LG>4b) zEtVJfV|c&7EyFk1UEqgt9*;Njw1VZ>g|{(-Ih??2*p8dxr0-%j^2hNC#&IhqaU^nc z@$+Ql#-r}>$jwGuyQA&xajp}QpNYQgQvRX3un9j@9GJrg7>xWw!mm^1U#(2=6#lMo z|KQokEyJGV*$a3$^4H^V!vBQLO`Y#xXJTY1;rCX!>CE#}6@DtiPgnT82{)9?y|d)x z(wYD^;79DoMQqIQU*HgKi6iBw;@FUI9sNVmM#^uDbMB8mr2J(psR`f_e2lfYQ^?Pc zD*O(-j!VKyGmVpx8^nFlK|*>Q!@2nVHmt#iLfSnlYCO2 zdFMZq-%%fsUm+%4DcBAM@nlB#OJUtlu?=@5vKyk0-(~c{nEb2TSI|FD&|jC)U02XO zP_VtPpg&ess@n%zfz}7m^l)@9-pa_g6!iB9hqNkI7IY^HwJpfkw1vjiEIS#Wpt0?`HcKIp}DC=(*S1hNk)FAp#M3(Ph`2hp<^Rwd!~tF ztxuuW2aq1-#_&}}?@!(9I-!5fU3;7r`rs;-;>L{bUqXMKVkK5&4iq?1871GE)(+iE(2hg+zdgWT>s_5?n3yszX(6k07r<#7z+xi};Iw>y+AElqG*-EPDTmCjr_EtL l9oc+vR{1Wfk3Rkj{so);rk=IPI$i((002ovPDHLkV1j5u&D{V1 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/license.png b/pos_add_product_webcam_barcode/static/description/assets/icons/license.png new file mode 100644 index 0000000000000000000000000000000000000000..a5869797ecaa7583c552c3bb7c9bce5910df78e0 GIT binary patch literal 1095 zcmV-N1i1T&P)?DLX z+1Y*BO%2WWvTu05Ki}`p`@J{sJ=nx1)&%L)P@|a%i#deKSU(9Ndee~mRtn|o9hqkt zsH)g_?j-1Oz*{rH&X9nd_6n5~S%#SclCXXhkhBHYOR<={+%T9HHm_+Rj=iH!?az_sX`LfziH+4|52SPxCd(lFQ#& zy}6O4ybXVUJ6qGPGqH9kZO+TqO1)ZNXdyA~iK zjU@8F177OZcQq)~$=N9vU#B7D6{_#K`1J!DzKA!x0H-08MD^1m@!Cu1^1Ay68A9JiW%_ zS;VTfBGKSzreWdMUn09>mmHnKrHDNn2a^cnnZ|MXDzMjuSf_9uLfT_HXSmEliE3?k zXG5qm?Zm1JIMsm2cnJK_V=hkE@UzgSfJcoDFQBI%WSu~xnTe+6cI1o%43w{m$eK<( z*6j^w>_69x>X$9vq!B%D)n2i2Fx3eCH`fw(T?A+}`>a(i3QK#4M*6$U2tPE#;4RnK z>mxwS8DJZNZzlfX70^76^jmNLyX*lJ7YEWlH{ zcu!SGBHwAI5D}|zA|-av#xj{i{y7^5SAdUFv(H6FZ!P*Haqu>f2gqsj_qOq~2-w*F zS(Vp;I|v^e^)8@E=esPmmg4ZVjs4>wpR8c|FGJSOYN$8)|IM@rI3xAI#QT>#L{?m_|*Crlo{0DLwqmu7G?&JUf N002ovPDHLkV1nf|8?OKW literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/lifebuoy.png b/pos_add_product_webcam_barcode/static/description/assets/icons/lifebuoy.png new file mode 100644 index 0000000000000000000000000000000000000000..658d56cccfbc0e46060ad4850b9fc60c656baf18 GIT binary patch literal 1199 zcmV;g1W@~lP)K~!jg?OD%n8$}d;Z#;H3_Ux`{Y$>IOhC`GK2Z&mUBGl%91P8y|S)kfJ7y@Fv(h8fJTCuS1y-dl~V3Bn@u?h-V-e;5wUK!dy#X#2mo{Oe@Ws202*N! zUYebq1*Oz(7=|0J>pn(AT~tHi06fpT5Cp+8=UfzYF~>QdlTyCudEUcDqp?-Q3ClZy zh`8_jS1ilAN<>A)|0jSkVOiEy-}kQ++2pw<5YcQ91S^cOdS0R|Fvb>wAgB}3_lVdx zo@Z(pi+`PnCN6%2qaJh2n$9r_fQWby1S^wxWem84@B1sJuai*#Qp(HIeDX(8DwXO| z%F8CUnE~{Az4MH*g_Fz52gcZf=Xn=0?a~H`hylQ*oZNq<_}k0ls8Xpc6H#iiO$}f$ z7+lQz-Xr3jB4gvg7!%!YH+A(>1Bjw%(UgpcwAQ*+tJSUpz&ZeoCZ;U_SQA3r;GDOJ z$T;)HSw0bo%R@wVuh)CagoKDRBK{zR*fFtJO3f3|HAFNzMEd>yw@I~AqJ#bY{dp7T z002bv$W%N4fDmGbh<-J-uT(0DT8^y%5pku|M*#3XBv+M(*h9qcYPH&RL>!t5ih0Vt zUhhjHdIJES%P?;Pz-K~;bwmtD2ac^kEdHi}cmRNNMD(sw>ZYmi5uOi;=pD!w4*<{v zfK{c`>d}E?De;q!JM+w*2G6)Xkk{#{&dFU)|KBh!fb9Z)o)nlf5uR}Y zd|trusm)0`Mppsg1Ndk6r(q8O?g$}n6g)=1h>y{88Rl&O_*4k-$x*rHnJTQfhuU9KK{~ ze{gV+s3kFgxc1mJAwWb%MAv-ZUm~J%N@uP-7z~#3)Ik8So7O{0t+hLy&I_FLR}6^` z@phbH$Kh*4{3egHFbsdG*XzG0ji){Z*L5FjtyLbvcvB|f%{;ykQM#_XnP!t303zyA zsq`QZDWumnCUwuh==b}N5RuYsGT*~mt@c!Fo%$4}0j>3>Nw>~uBiXinKZ>Hx$z_=# zilR=d)w*wDYuue4X>6r_BNNeAsf38{WsIw8wR+FAJ7-+XA!5H;t=^mFN<>lA$s-;h zXEln5eaCU`PGe7Ktv4OVxtm8kK!NspT#NkddEOtDN@bZbcA|D8B1!;w=r~T1>a_U% zK%>#vBBJeXx4STU!I1-p7aW^eM`ao&dc|bh_WW=-{0Wl3r~lMizvej3Q$);_Ad@h$ zFS2H{DJ{#|0D#*mX186}-I$d4sUW^)U5g92(PHl7XX2Xm3}<-8@HhS0PsfeRnq&X~ N002ovPDHLkV1i;vH)8+* literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/logo.png b/pos_add_product_webcam_barcode/static/description/assets/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..478462d3e73d73cc9bae9fea8e7f8fac84fab049 GIT binary patch literal 3452 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 Eg49ZXX8-^I literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/puzzle.png b/pos_add_product_webcam_barcode/static/description/assets/icons/puzzle.png new file mode 100644 index 0000000000000000000000000000000000000000..65cf854e7ea72e36142ffc1a407bf2b8355cc85c GIT binary patch literal 653 zcmV;80&@L{P)9a`;n_Do>R91)@YfrZ;WIBYI)WE@w%y z7IC%30~nX`B(&|Bi6!}ZGuBf8IAM^ zQA&SX2=P2@*<+`kI7+k$-1A&gaYV-{Ks?g2#0TH?II!as;HNYK-X1sS_e0Z#CLzvF_5wZZ}7k)9y#mQhdC00000NkvXXu0mjfog*sX literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/restaurant-black.png b/pos_add_product_webcam_barcode/static/description/assets/icons/restaurant-black.png new file mode 100644 index 0000000000000000000000000000000000000000..4a35eb939cf065c6f8cf83781a15f357348769da GIT binary patch literal 905 zcmV;419tq0P)?`PC*pLe{WG*jTWtl`Uu)I!h(oI7q&uZZ6pM-kw|Ur zMPftz3s_jOvBN@wkko<{5h@lmjYJTFNYSdk7WZDgxt))5&f8mkk}hV>Idh-qo-=c2 z<}K*Z0h|JE0{hdxYd{s)k+v@ZXMrAIo@0zw;4N@F7c(R11%8u|tpdl>{-S`voX=~= zI9qe}3E(2Iz)Gr4;kyl(s~mqF&>XN=fMdX2piMb8pcAmd@&I7Dz-K#&h$ije8Ud@c zgQt)P0N6-UPAX^wv}*@XAr$~{fXT%{gxOL;d7J^}NS&nu>IqNA5SA(ZHvoI3&Qbww zBrApmt%jI`Qb(zPr3MliEX(6AgxqFAfF%PhK$pZ(DxlHPm#x|JJ?#vOh0iFWL*gX; zvNkySP6D04&a{0VI7IUG&7=5n`XhX%X!6%0pdIMTwKt`IMHB^02%jlh^`s@_+Eq$X zUua7+@KNF<74Svq=fdYgTbhAkiIY^oW1*i5PYP{`fFHnsWN@i~VW3~=Tf~(@TO!~V ziHK=MH!#NJVMOxR&(xQ+UJ$o$y2)oaLNW;@b@MoYxa>1*DRX}LjYb1P&7s^nlmWWk=>z*h>g|NU{%5MtF5CHx% zsv|6})E_wVDBiwF?G1#>YfMYTD&SYd?mLjjCb;?_Zxs-Gkk1|~y%8;uG6am{&rq!N z-f4+g1^f)yLT_-QuCw0J!G4)Cg3XY f0eA)+t%bl}x(3Cqe?`Zc00000NkvXXu0mjfu`-q5 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/service-black.png b/pos_add_product_webcam_barcode/static/description/assets/icons/service-black.png new file mode 100644 index 0000000000000000000000000000000000000000..301ab51cb1363cb8a0063c4f9f7cb9cf73c91e10 GIT binary patch literal 839 zcmV-N1GxN&P)wG}3wsU*IR)z|Z&+>zafrqJwCq*x@FjvNVI2F^z|C zN%{bO#A+2K9mjI&psYL^8b1O*HWO0*iAfK zwBzye?BGqTEZN2s-YR-iRRhR^{{@@H!rmxCX)mp)h^Mf|a7g;p*wW?ud=J0RL?CEP zkEcMj#QI2Tc@Mv*2kEq`DKw7vdi=Jb&-aer)!-Z0qjz+QFK@N1&aRXO}`izA!9+A#$97UmLtKG(#D$V@JG;R0Xua%1u4_kNMazOP^ayYznp(_+pa zmHp&*7l9|T=r9&<9@|?Ko;a_$GXn6R3= z-_eWeE8>!NN6sWQh>p|@{|B~~h0NN}OyO(k|0o{Eevvy?ir79Q%G}xZ=i2u5tSHu2 zwf(N(bFnYJT6O^a^n}=lCZF8Nx;w2}uUkB4XPd5v`7Z>im~HzdJMCK7trz|-8@38>5jc3xX@h`{ zh@iEj_%)@#V~J@-!i)2n-XCy!_SC5Qyigi**PVuC+h<}!~>FElyR+PxP0svs|A}^vKikR z#>I0>S!0;4UyI{*IK1PzbOF;IshL(A_k5A?+#7WY^+>e^YX;p z=xW)DcRQbIOIo!~v-$kABZfD^J?Ag~CjG!0N_ye{SWo@7I2vn7n(V-R~kb-3M9=yBBG68O-n8v2ber%t!Zu Pq0ivy>gTe~DWM4f&Ev8V literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/training.png b/pos_add_product_webcam_barcode/static/description/assets/icons/training.png new file mode 100644 index 0000000000000000000000000000000000000000..884ca024d71ca9127a5393134632ee92a61b07c4 GIT binary patch literal 627 zcmV-(0*w8MP)Ji_yZ6G zgCi9sC+SZOF3B?A-3o?c9a^B`5B^xi{atdGlsx zfu5coC)9d9*W)+29w+CYx6HE5(7FIXTmz`}IuU&auvT&%3np6<$3JExZ8|Qv1`yF6 z{uK`ZBO-bN;C9iN>oGlP1At#74phASP()5l1Dq?6>v00$qR~ktYISg_G~Q>PN9l*Pyjm+=0joaxS5K;Rj(=Ddy)iyD^P2j9tz7$MRPPN-6X6Ic< zC{O?T4(yVQo5t(DjmAqa0UQ-9Bj}SmO~ZA+0wO7a=S3S8?~`nFrw($EDaoG!IQ?TF zt|2?U(I}QLQFZXyQiDB8SX$~v-8kVA@YGU+KFk?f>fJUiwWsHQ*BQQneoi* zIdjgY7w2;~&-47A-}lQiGr#AVfgU}2^thi$w2V8gP8xe`iYA|^nQ(?HLC@=`7Uk<}) zLeWEQiU$yZ^@<(}ZFDXOrZ=@2KTECwL3TGYp{o5;VR!&Zenfb(Y~lunk>o@WhF_@a z!ghmmZ=oQx3ZUrTMV_|@z*@URl_LrpnuMspmx02LayE1`&DBGH7 zIB$fJR!y{I;6E2v5gyA7yJ&>%uIrAsk}Qk0c3q+z1eRyI&Umi#qKMSynj`laxQDEG z$>9=BWqAjWxCde)_&ZYtQ_uHfppNAb)C&iMgDG4Yayz-APl492qWnZ z+2s4qPerk;Qd zRTxgcUKCf(0QEW%Si8S$d^23v9Y;Bm$|Jh7D5kUlU|v?DQjz!5DcCSIHI;o!&C;0x zy1x?jTA~w;DMb2S$s6C7*Wr6^*LJGyqHt8;>Dg;xBk)zTu^q3#d?0F4bwS{Xys;0Y z0b}%PxF6sy{*u>yU@TD!7kg>wn=-H#OA+vz;H27KSYpwM_&kp%X2ny`^Yp0@|(y-wyRtOEu) zkZMr2S!>sIk}ylBD^a-LQPoOlqjSJ;L-U^%BWoPTxn4GDGXiV(qm1VDmv{z1L}Jvu zn`vGi$NH_RE@&E5g2~Cr0o8JExjDBIzCUyV^vhJEFcOB*@hFO_Ws){xtzG=^;Lve_ zQnzMHdm+ztcL8TpjlxKr=$THQiK!@hAyIz4N4%2V3+2+10THPgVGEG`aJ3>)#)7~e zj-qI|S!^?IMA7OXjJ}pce+C{;_v(adyt>r~yRAcuwRTCOd=IQ`K0+rHj*6O7#^_|N zR=ZNIR{yzq^QL#_j;<2XwFs{P&o>X}q=;_wJnsh7KQIfj8}c9GwohHEy0HGyN#1EU zwtz&CPhEFtR77q!cFdS4^%iP|h}3+~+kwg^h2P66zKc$%k(WHr*_9O!^)V)55l)iG=bkroSVWSt8oK?9X|oC&>t|S94mi~JQz6J@L4Q+~({Wt+ nVe#UD%iYS|qeqV(_m6)8sc^)gW+q6200000NkvXXu0mjfv*t}m literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/user.png b/pos_add_product_webcam_barcode/static/description/assets/icons/user.png new file mode 100644 index 0000000000000000000000000000000000000000..6ffb23d9f036834a32954f83bcfeca00790ee443 GIT binary patch literal 988 zcmV<210(#2P)cAU zg%n1_!UO~hi=Zajq!7VI@CUR>p`!Rx*a$&o3k`~bXb@RtC1&nyR*WQ@xp&s=+|MHZ z%qBDA%sD6P7W>?P9RqF}kWv6&A-zOAepFK7 zn%moe*=$Tc@)I0INT*#4Q(tpt!c>;Iw0DH*Nr(MZj6)>|hd7}=D`NRPh zXvGuSy!q^~M868;^;_^453rHAwcCa0XTYMJUi@XTxY>o~XCPvW7k?SF)lGsQoZDZQ zP)=G_j{)g77n-L5oA={)hSIDH&Cfs)ee1>VM9F4cXnqDNc7ia=s32eb!iDI$gsOi4 zLvKEpLvw7Jbc*9=pw+k^81;$)fYoTt-RZ*gtblIt<9DK%bYb~+p`ZNt9gylSG|w)y z^f7S3E5=1EFtYA*7owK|ZMZhYc+MxrUpVY~%?xuR%hGp%`<%$)6(zO(uDSg$G#5pD z;K6<0FLeNz{gRNEPQuWq)1OJI*Gp=<<_=N;X(Gq;tOM~GAMp_MS;a)29s}JqVCIjM z)b8=k8|EJXBpK4+2QuS_5P5?c0HB~e#B8sn^Ebj8h&ak%8{2szdo@hTfKXDKM!FmH zW1nf?P!ziqZws=70=&$bXf^g?93W~xqS9P$i-O)xkbdQkw>_W_=3j zHL&MZ+4h#Vli`J@6>FxCSeAZmS!$N0X3g}h<>^5?bLOg^ymRRmYovK~+eD>9insPXvj3+6Gb@v&hmf9xq1t2!EP|dQ8Gk{Nb(_%F zfZ2)l~DhpZ1%x!dRjm zO=;u!cb$X1D_}gv>Jbl6rqq7)(!s6*&8$S;I1dcnm#;8RsZyKh9Ozzw#ra8ApLl@n zmu`~X4VYcGB63`?zPU_W_r4w%$5|}xSP?5ge^6@en%S9MO4}qmpBLGc z+0FjUY-Um~^1{NNbKdiv_nq_2d}juhaAqNAYGGAPQ!by+?CdIx=|Q!EF@IoLzlew* zHqN3N&|>jiL`D#~5!H3TiYBy2#kO~cjhT*5UTf&o)WxJyJAvB(gK7(+j!7;TT0A7Y z1FE_V&)W$+3}iZx$0V2A6?Kio3}~@vBQg$L-C2d~l5BRYn{^UNAuSXJ5cvdH*O{zi zV%uGb2Qb}EY>Q0hdBTeCB5i_*J%!Y9hB4-|&cua_ha`5unC%@oF^Pv{Qs|lv<4<)f zUXLH|SJ!zQN!xgltnuI zA*#cGrK&x(v3Ly_Q|`zSxko)OA2y^qPL@<^KO#f_bvjN$1}w`3PIqAS3hH^A zP<=n*vz)54C3ehdJM0g+#tCDPU9e*A9n+;vw!rRxEBni5 z)-Ry*UUp(jA$8sBfPFx3TrnGPh-`L9MCxAWV%Y)pyc>XbNlyG}DwX>i#X}4RsyFRk zVEIC0wZTI&IM}qlEXaTsi?^UUPIBUXU{q}T#a4t=w~?!r^mSlaglPrljv8T7?RP}( z65D>Q9jU9ESY3A%*b`~K>IAlZtB6c%p|F}v<_biHP`wm58|VX$0ly;h9+vfvh)j11 z8_9sG3ZAzI7>zOy_>^pRvxuCEIIkl@7qaR%o>zf8Bd&3X>FJx35Dy`DKpiKGG2_6- zi1EL|_pg8qr_|L-ofg+klMsFq4s0+U^c|Cvl? zW76WGjRAGt5q$puurgxIe=ugV^!5FI`VHxE7Je0$oQCSazOkXL=HEJ@iy7)<8ccM zi$(+ef&T;QIOo)jsy2Ql_>yw@-e%|Y#X_Tj-|AYa)EhMu>Nvyr{xgBmKbe`?Dr?r9 zOju)E)IDj`^R}b-mDwQojt1IgQcl=+(LyKais%c845mdJTs}XVW{eu|uie$6SB5Pd25|YHf6OMZB Tt+q0v00000NkvXXu0mjf(ZE2? literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/categories.png b/pos_add_product_webcam_barcode/static/description/assets/misc/categories.png new file mode 100644 index 0000000000000000000000000000000000000000..bedf1e0b189ab85a0800d2bf16f8907ae0f9b225 GIT binary patch literal 1532 zcmZ{keKgZ+9Kav<&g)v_b;hk!gv>VTU}Ro~txRZnf7vk1>ts^0E+H?ytaOVCAAtJwqh7z>jo|))?0E=;^I0L}r!q@1EP`)*ij%*d2<}K;)isHiUuO(K8sRsh z-Pis3{YvV^@OQmmNs&NQU=)KXv{AlE^1MknPJ@r9OQ`&Nj0POs^TNY&qa1m>k$^h9D8PU8DqJ&&5k(K{sH@ z>V&X6c_01q(%2SvYvLlvZnd>@@hKBUnCj~2ChNaWzfP;#&qp?|WQ{%Kh@)Q3?|Ni0 z=(zu3N5auKDLJw+J9M|2X2;&ImwC4Jf<@^EEM+385H^D2h1?zJ3CZs;Z5fLh)hk%5 z92LCeycC`uoi_YZVuu}XVj@bJ4%>5%sl%Pd2NlL!H`UvThTU6LJEXe^gn}6qo&D*^ zm^{E}_)%2m+Lg7mTKSD%vkXWsw?3^(z8CV2X1=Ih+$)FISZ`Q1W>#&(U;Pf3754az zInOwxDLL*iQ+nNfq^Y+ffJ{jKv)@>P_0P3jxYZ!D3cFG&Z(+^{gBw2KslvLZ6k9pp zcav^CwSZWm8XpNq>1*NKY-M4jgw>z=OfFMf(-%Ced^p_UI?=L>ul247laA={vAc40 z&MbkA zQp*daY+?&xt97XHt%JJN_4~;wCD(^h2BpL1xp@X^wlU;+cG@IQw(58Lm3j6ZZ+dn9) zlL|m@Tzt8QBUiJiT2oW)3o_`6!%f0b4fhFzCeI?t)lB#3@yOj}Mt_vsQ;lPFV#O6{ z#%pHl7`Xv@3G+~0gf4=9HDk7006U7#X5b?aGavvftd$iSYlF73p<;LAaeMIAHoLG` zJQn*_0WSNWkeD3Bj6U{lp)90@1PP}9O<*$<8L4b~BJ10ZkX&2>Ie_fuMQn7To%{z~ C2BR$i literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/check-box.png b/pos_add_product_webcam_barcode/static/description/assets/misc/check-box.png new file mode 100644 index 0000000000000000000000000000000000000000..42caf24b98062c6ea6bb4a636808964262e04e64 GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq@N1|*eVE!z&HSkfJR9T^xl_H+M9WCckkdj$D1 zFjT2AFf_Cwy$! zfk$L9kWK*O57|!VfeiK%PhVH|XY8`f{5%sry}!V~z%1$M;uw-~@9oTZkKjO=CD^jHr2-Ky_r{i?)~S7_ckB4oN(g5tYF>c zecgT2?!-)3&U=-W^}*{P+mk1&m|2o@3`DB-E~qm~>F;-*yYrll;YLQry_@%LUb%8X zSjE+IehQ%>T3iJ@vm@Fq_A2$CQg(Ju_%mzI0*!##akKYr_)x8V`IhX8_~|jz^_hE> zd;=LayyV?Fk7K&Tx^-+XW2{W<-~V5`@89>ZwyFGC>#fe-*%zH$M9~KbEpB%kplhyQx`MYlUcye6W&9GPaJX2i3?bob^ z=exg^9ZxCxM3D_VHl^jeHY`!8c)H5wMZp^0bDUnQR~=%Q|1hPlj^%al zjs`O?=kPw+Mb0anZ@pqaf4bYWLWeaYbK%J(#?C)E8yU{u zTrOT_@NtibABP9W1^0$+d-vQ_D(lYg?oQ;m@a?L(Z{C9mLOf|(k3Z&gc6i`$@X)`5 zj(b<%uQ*aR(a3;d>&tK7gM$+}IPUzKI3?xtd={Saa$y6>?~&_*ZG>w7{#DSM$re73 zo#ji*{q@_{ugldxe*4`p0=f4`+#~FJYD@<);T3K0RTVZ(~IOI{J%W8*u9*WnXM%N#3}+n;w=F9$v#T_3ILHv09f$= z0PI5mfQA&b*x=X~-2b*97_-TaA4aVSZ19GdIft|9@!#C?$B(cJPz2G^1hfc}=H!$h z9#k8!MN^`&p}kYjYbSq_s3S!GnwCdX;-6K?>A^MlW~@W+hr1_WWGxPgd2V{r)k%}8 z`@Nt`HpQ1%gw>PhZxP~)DeN26sL+QQU{ z8=X<#AL%T$&gkq?(a0b{u))BWK7;|3><4RK5J@RX$ z(S}Z}XkyR`Cl$7Nme&@zL{?CO(=SFeS?(Ug7^y~jPwq$Bhw-+z)>A7RpO*1e4MwGS z!?tam!3yiN^P^z==2Ymif^Sn_MMZt9@54&BgyW9J6EEZ>7oa+7Fgzx|yzbw307XYE*cD0uWM1t?sq(m z9jBP~NW{6Df?8;77_ai$)T`wdKc0X%#E)|{;eJcBhe@f@T)URJue+whDml1xN zmNk61-cbkNU1R|d;RSR}>Pp7Y?F>1OlNfN&=47KVbsz1e6&y8Bh{?cg&1Ig3W01Gv zC7=XiEH4Ov!QLP$LC5WJ9~lk#6lZ-T{B=vW=D7F#K=!-_N+yGmza~Cwnx=Xj)mX7z zOsJg`XhOIrpF3Ee5$Y!;&7`H-MHfA>{W(gimR9q3_d@AdIN>y^r~!^0L3@6yh{FJA z>EzuGB&7WeZtLNXZwe!lM@J>y-=h7@#@G- zXgt!HYgpi<3cuG<_PM-k4z6eGo;5Ik&8_$?xGvg!@iwHsU`34@

a z(_>eoHv$BXzpXj*;mu^oFsud6dmu+nts~s0GR4&i8>u2*lJ&g^edi)~L&fHF`xcb0 zRlm0+k!#^FXzcS(1Dbo z$w>yEMeASDt3M;-pnjYJ>FFYMSz%vE_BlG&wtWOzk0YpLW_ylg*ur|DWJUI- zU)0fQZnn~}h6#n}$U_9+RPq(KPbG9#r((|D*X_Q+&VaPaRJWHX1B2uOm}D=-pSeA| zhR@8Pilur$blSs}?7K9JcXk=E*Z4~AQ7G7zH%im$c?x$uW#moLkeS4Kfc<^9^U;isYM_8gVGaIzUR9D~IL)2H9n;n!s9NnmY0<<$#aIf_ z`1IjLOIEqGlv~ty7hQ-3Ebo$wPp@<3xx1PBd|)vPllIi*+^yybG1)n4@Mow`iQ~Uk zy<3a?txUP6(@-+g^=ESCVr9z5h=VmQOtWOqo((UBFr%t!*&o7(FaJV_`3sQ{TRiTD zv`Pd(%Ff8mjsBE)?T$<2r4-GI#KuNn z(2Sl_&rj`XC@hfYH=O_Gj$UEV6uRI@`+_7??vmT^vIq4!;eH_XsW&`FAcf z`)trP=Z9;=n-^8BSaF~wXW^FzvVoq?r#GnVowU%m=ET&lgZHZWw2N0vw*Sn&eTUcO)m2MAyUGU) ztFN@bO4u;(?)s-!+S+EmdX?6&T~StD&SpW3(ZPHZrVnT1&5b^#`sbL5DCkYz*86jB zTvlL>)4dlOc`p}BZ*`X8(>k6L5`JOJ`M4{*9F8`Q`;IQs3le9Rlw|nuve2pN+to)= z^Wt{x%3WyHzdL^0)hh>>(={sIEEiFKP{6>DQ?>Hnp@zL4K9i4xuiwC__DVwH!Xuf6 z(66(7JX&T?x|63{w?un&XjWFHqmbl<9R&+NIq8NMadAC*^gO5kv~tkdc->WBAG!Xp z>^SuOz5nw2TTZfCT1MHjCZyKquKhbnLrl88-MRNm(v0ovVj|yXy`Ok{x=!bfnSbZb zP+0r^#SE$cm#=5+u&c9fT&ZzCDOPoBSlBAYZJX?^t6#Aw)jl|68*z(e-|H<~Tem&Q z7ud+yyFn+gMyoLY{rBvYqN7v1s&sp1oMmEgD=)X*I@xEk@TIUQM#qMmJnS4MnGM1Z zmo4e)vg)6m5}lsDq}H{D`)0LE{Kg%{%P(+izkBw~ElRvlS$NN^zISXbhra~+%1Jb^ zv+p$J`mZItCu{zu>3QG3zs`GbMfp41^w&3yziO0C`14`my}#Lec-!+T&-eeVnRu-= z&P6@{VU3vtQ|;&W=epXuOUvFo4)jz~Z@8*AecJKw3>HB_512Emy|`pqEWVzbTktX9 zE^EWP^t2?_1J~KvGmRTw9XtpWj1_HI?&_-Zi0kO-qDQyb!h4Ys2yS-RmR&eE-4bEi!Md z#`oePV3t!Yag8WRNi0dVN-jzTQVd20Mn<{@=DJ4aAqFN^MwV8FCfWuDRt5&LLK9}A yXvob^$xN%nts%!>Lmj9=18ze}W^QV6Nn&mRZavmfoIiki7(8A5T-G@yGywnv4>=zge+s5Ox9s!oiLUVG4_2M+cCB?%1$wM z35BAREmKO#J|*5c?}zug-Vf)#uKW4j&;4A#>-ls)PqLMTF&Fzeb^rjlOic`J=oI=V z!7TK(g}TyB2h$xrb3Fj~JDua$jhVie@G!A42Y`qR01y)o06*!im`?x@q6`3=NC42t z2Y|DI#a-4~^aB=mGh;(K=|MB-j;7;Gpov2;oyh;@wvYZ4y2zl(;*#HW-B+ZU=P zB}2dsV24HBu>?1;z;#Eh9yt|?k=;eTY!cEb@0K1Pezig}iAh5}_{F#MZ_`~Z_H5WM zht&5U)((Fiz(3Hg3~&;3`Airp>SE*eMZVE`PBat;y;nD=55DwgK?4JYEg2Y-|6*^+1h{6-B&!SBe5E!SDN3fp!U|+<*0HElltJPGMb2?$>mdjTQQ3Mqo_(|wl3C-(8CMUw8T%-yS zDLLqp!S7=7)+lf1la3^}gDt78Fm`^U^Y!9}*=u>O1L?;j)34rmZ_6fVh&0(ra(6K zJ=A1PP9x(ih6CAgn4;n)0$DZawSV_W(_i1X7rx}!Xg6v7R}ECxx{@Ft+}fJV<~|A? zT#CQIM-GxXBXR9m8-wXdbCPRV=nh?Es5CeZh+ix$;up!#EzWwCHSF?;%g0A*_o}eE zS@rODuIXUI&~%>=BeTDO-{ak(dP&UNJQW#k3?f3q&%YKh zj}8p+oTqknw4m|3D2ESG2DE4XHe;BL+gnd7yRtHYZE#h7p%}cu?v9ssl)5bl4Hqcs zjQsg)Mc|0RKfg$1C&O%-Ns&h^|1j7uzj0=?xk1$ZUPouzJ~f?WqK^36@=wtfO|p1> za8L`rc)&O$WF1$kHujFpY~RER*JX;aRh2o_v1b!LQcGbFFE-c=*Kz^*aC{Vxer~kF za&$=c0%o1-Z$pmfjy5LGSkk9*ZS~~7dR%P=g|R|GD+(K_J*y8b(~+x?!|&+{ zgwxtPh~cLbaf``1!NC!cBR|vlGd74Wu%e z`#rd~NyJNCse4$c7#`W)tb{SXwVIv1_qpB6rM`G^5%aP1ZnY=lB~jj$uc_~=lDctU z^KU+EFZewa@@4oD(~b!yW&K?;zfc+lF}=|GE_iyhZDizh@kvh)r_?CYnKB=#W@ZKo zo9saqaK=oo?F>*%ho{-UxxNN{6uBnT`lM5vWZRyJ`vZ%e?Q zv>M#LLI?u0V|e`&oeEN)Utq8)ElVHL66eGIaHra288b%v`Cs{C*WKA9> zriVh>?^EI?gQ=OdEzWl&1$lN998+JD=B&BhrO-a8npM^`3))VBswx~r6Nn(J8%AkC zOc}-6$>*;0eW&!2qn|>lKilj7Eb*_GRp-qYEj^EVKp@aa2V>yE!W8Ghq6kv6CB}Xi zA0%-#d>lmd^_E3Jqz&&U^hs6Uf$!cB2rB7F=`1dUelVb#$>ZZ>$s&hR4==JusF6np z@V-*lk1f6H=2V(#_q0v%|RYgqWP3 zfQ)Z`wWK5;x3mt&aI*<@>-2G04>CN;FWhnE8+3fk&IE&95(P2zm&wMO$4Uan+^d}@ zKfdFCtnE?lK?R}Tyh*Wvd9AIdTB{ym3f0Fe=wMXI ld?;Oj{O<-V+RrN(>*g2u?@lP8bD!=2rbZTqP5Maue*i?K%;o?9 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/cybrosys-logo.png b/pos_add_product_webcam_barcode/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3cc0ccfdaf8dff2e8ebcb010e24ad9e636b494 GIT binary patch literal 4496 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 B&Kv*$ literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/logo.png b/pos_add_product_webcam_barcode/static/description/assets/misc/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..478462d3e73d73cc9bae9fea8e7f8fac84fab049 GIT binary patch literal 3452 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 e!*|2?|H>Z_>p))&1OWs90000l? zWKy}bLYpqAEQ(GYLL;Gb(D`-#IL~wb=zX5=`+48*`+lDHkMH++vpn2fWTn-m0RWIC z9Kam{srDn};o#iz@f{BYjOs*k0)QL&sI?$TaIX_`;1CG_67>Kel?4EQfvMC#0pJ80 z0A>OKz_uI!ROyu+p7!7YJlNF*2NE3LoOvlAr055ZFhBlyRK=FmTchU@1VS5t^%)rBQM9x$MwS_ zIXL28E0Jutq+4j;o%BRKk^5frRo5||pMzOotWxt7e`AC8&_%_GFa5wg4|BIgM?sHX}t!3?X6PLp4$UBYR*G4H& zMWX78_VXrTlyZUMxJRvzIRlyY?ck;R``%gwo;iG&QYPkRhHGmxV&U|J?Y^rE3saY1 zG~M-*5Q7+U3lPx5rh}=!OE26Gy*noAY^$SS1z(p>+80-3tY&2q4P(pi=oiXZbv==y zXNz%@hg?y+v5^*UM&psGr?#W?#oy?vVT!Nq;xo2R2u5H<#RL5qj7dO4ac@0F^!ngf z&PKr*uOm|Ap(E|9ZzYaPLWnC%tr3r8Ip>Osz(!1gNeva3Mwcv72UG3Cw(^a2VSqj+ zi^Gw7-K8=_q3X|GY3d)JcoS`y2fuJ>cPr!LN#P&A2aWB|#WZhQ72J@Mi-2%_f2*#Y zN>HTSP7l8m-qvJ*mJe2QXf)d?xw#rCH_dEO(a3Z^O8y(8pbhe*mx~XuA}pYj%F=G$6K(s;ly_O+L&wbDL`GV~pO~%~ zb-PH}OteCdwx9+4m(buZi#6EN`j}3e6EiuG#AL|cKo&hdUL+J{m?}#zsV1<9ax%nz zu6S>pFkEA{-8Z>oTkYo&~Ct(r52;n35<_46W44SR|=yRZb>u`vCFL|O%y zvHd+g6~vOiaEwWo&Gx1)vM`!ybp5j9d~a2FcK#-HcUG{IW9kF$JJMax#<6T@tbvx@ z$jqUkmA=~0F9J@|)1nwszzpy4gMpl7U8}JtE7}@?iFZV zi%UJkou|bMX>_Z&mia{Gm1ER8qI{S!4wYU=N;1}ifE8wL*nd%HI-fmC8l2CMv-R~u zvLDDM5}tj44JzEQ*b$bs1|hT<=)srdA^a+{tvf8CrMN979i}O4ehAemf%4cedr{mn zGO;GJJ6*4d5f{8kimVX0tGi;q66V;a5r+ll#Tf1JQR?ITA_3c#FgN#Z&wSd7rsk1# zz@rm(^=;c#Bj>sSsWVIc7rsY+Ik(`8u_yE!zp6Cn)=S25Z^cV3AX(?Dbv!U6gQlBt zNC{m%*Y<{X>)BW2u_SzBEef}Y{Dt+>dGfohq3m#N@KS^KHSx!Gg!cfYpwHXRC9@B$ z4an`Ay4?85=X%4ZN>1Uk%ZcT8LJ)2eT3WnQW+Lo>r(h_TX1>tfcWOr&Dyk3?X=J36 zKdbY6a*BJb<@)(GsIql|R|Wyu3I4h}nRq`YC5Rbn8xj`^0>Gd#7-O`RF~;gJ+QJrX zZHvb2LZfZbXvv51_x~qE|3ZlfOZd6KWD8G&g28_;Fe9Qv8O)$)`p=ymdGocP0}$|T JxMpl%+CQV6u!vJ6b2LQ+{ z08k|5Hl8;V48(lSS)m0K*v8qWXaU4Y)|bKr#QoPfLFWB}1Vpy6w*bw8ppr_kLt{~G zg3c!!^cfdyd+o&tj0-_-IqKL|DT#v*Tt(VR^p4|6prn%In@+FjDyl+Ba-xF~Di*o1 zx1guX{>c}`ffisl;XpCP%2;L>T(T8x-gJ;p+_7=b(m`FN+@eG_S^4z(swp$6AOG}(RGqLPX`>E|>w!|QLqhG3-1qHCT)(Q)h~`IeQAoQ|B(Fe(k=IQDJyJ-)3slV5N9QB$+< zu4?=JxT>vkq}G80CL?V-ntJN=@c2yUm&LetGTO2T(#j^OseJ*DCoC?G5Q?B&pWvkm zOYoE;DdcSqJUen1_q3ZEmgOznZDExTJ)V_&Rh)`E95GzJ4&G^q{F$r}|7E&o>+(ec z64CLp)6^!M!3fo%=MZluDcd<1WlhCFjp4Bl4#q!@b*1&Xwa{w%sl7v6O-=ScLhV0; z47)u%PF004qYRdY9GTLSaf>OCK~;YtPt6V3z-srmem%XD3*m0au-^8>2S>(GiYsD) zpO-i4^Dmc2^2iIJL37{IB_*OpP`gM*{r#;A#$k<&;^~d;9KudWS?k0v&zimPlH?|J z;knX-i?W2q)DsQlGC4*m`V4HUu4;M&+t4(GUC+0%aXetc60Y;`z{a8cy)H|gYm={j z;l{W9T$SPNFVBC(rBJ#sc(pp-rX=*iu67=eLx|jWLQcNE{{sE{`T7@1Z)9bD8zf0( zjj~_mT4SZ%t3rjZ)!{+2vp?nO{UgKK5#yNL>do)RTlsz2bB}HLdTS3{kkn^F2U7gp zeaCg}X@l?hW~nDsTvy+m_*r&&mzT4%)(9!}{CMT15>^6t%fNQzma@FX@aRa|1l0z*qvGe-ASXo+H75MF{hm1@$B`s6e`mtp!u{1kM23&ZI?Q~aH zN9c6V;=6*9!4dO;r|zZd$_WOZQV@&;NNnA|Q?IR?yF8?du)`6$l_(0$V9J1RKmcV* zL8?eOFOMC}v{Q;TXr?v4(8$Y*4M*d5teg-LQu7*+Szj~fKj&n^&=_#Bn>!WDNFV)p zKhqa@bvz1L=JLch`E!DQQi`PCX&pZg7N>Eq;&or4tJE-I1D?u=@o}LTUVUV9Z1x9K zl-W1V4UY3U$sz7&6*jVHxCmv$zDA`E312662$dQQFCCh1p7TfJ34T$BgE}dRTB|LT-;YEoNK7ViA>jCqdQH zKBcB6G4S@&$Lel2T2^;NazX~5d1xAxU`Q7a_L)UzJ8>v}+Nh30S#B5{KE{W0 z#*57t-V&9JQeIkH6N@r-4+)waqjM8>2F_r#b(0B(>Dx`rM_;dK`EU>?=Qro7lB?mj zx7S_n@%OR(i)Ai{8Me<&+UvtElV8*v3lri0qIr4s zu+es*p>Y-FhM%-{8Q?+x5Ci4jtTNiRdwT3D*)8iinnteUB|-VY!51KxoFN{psB7JI zKNn5!NMef%;b~SiLeB68D2@4D9cerQV-6f;Tjg~E` z?bzd}7Tt$!x1AqrR-WumDLffbZQ^=ao6`5U;WZ~2%Nx&p^xjAh*d9)kkNG}$%5A+VOdR^iev6_9*0mc5>s>W({cMY*pr&6E+Y%Cnm&&+Xg{{c=MKK%dy literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/right-arrow.png b/pos_add_product_webcam_barcode/static/description/assets/misc/right-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..730984a0635c971661c6ccafc2fec83a2dee1632 GIT binary patch literal 967 zcmeAS@N?(olHy`uVBq!ia0vp^4j?SR1|)y|Tss#?v7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=0965n8eT9klo~KFyh>nTu$sZZAYL$MSD+10f-TA0-33Sk!B6Mi^+1ZV zz$3C4NGE{this?wKn8n>r>`sfGj=I%4b4g4AADwDU~2MoaSW-r_4bZ!MsT3Sv5((f zj=RO|;#kCS=}}7XL8tDJKN>$74xU}fF>8v}j2jEzPD!~~B4D&6V6&)t;iMZW0#n(z zM5Ri70$rZ#WgS)W=yTpFs=aW@vwOvPpZ>4?exP>p_lE`Vt_v~(ZHIzC=1bq*>z0|h zL$rJ5x+8)Hu@2<{TBXXnCcMxU`O+qJVZYbXC(k_;P{=m zoy94kwEF;O_c>0rrT6}e&e$-V*P8MWRF-G>B-@r{Pc42%%tE>x>1&hK=0!iJj_bFU=Io=^F7{M7dD=9_DxO9dJFZ;G)nC3NUIDloLooN-(2f)V94EWEpbZ~Z zma#f64Z4`2v~cT7d6xV)e1{w_vmT7DkGCt5Ur=3pHLa;*5f zc07h}=2!o+4~gCP*(>6B_RmB<{nj$JXpjQAjcb8g9~ebTzfTZ+G3jl;^Y7o%?q9u4 zqt|+Q)SXiP9{zRhqs#@~+wA#bT zfk+J(R@O0J6qFZ;eYtTmFny?&xJHzuB$lLFB^RXvDF!10BO_e{b6q2|5JN*N69X#~ zLu~^CD+2>trOB!&8glbfGSez?Yw)Spo(a^T0k@$fGdH!kBr&%Dw;t&%E;pba22WQ% Jmvv4FO#tlhdcptz literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/star.png b/pos_add_product_webcam_barcode/static/description/assets/misc/star.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb9ab29f722b495b4ab0ece3ad21e7b82394f3a GIT binary patch literal 1642 zcmZ{kX;cze6o8)_%zz{|jy5T_nC3DXlBrQ{D7dhQ;$CJZkW?-u8k#BY>10{CONm2j zS(=t;$2D_paV=a*EprsoO3bpw(qZPuoHIYV=iK|<`|kP9`*+i+6h{PXBMbn5aCUNV zmvO^CiG;{%wRoyg2F1g6WIF(A&cnY2D#_-}K~C;u0Aln2;3fm`RrbV{01$}=VD2CQ z*n9vq!g&pDdu0pAA)=#$jI#J*-xx2$&*4tK5i%b9H>F2${jvtib|&MYvrtXNjmD2) z)OG-rbe$dSJbcS0T_J9h7=ba)GD@Y)Z4%I{m53aoBzyMi|aQIi2zE_#N__+%0Hh141 zV)v5xuhe>IzQVca4VwMpL#TJ;||e=cM%{MUEOMwYghQ!59{b=zmX~BHv&X<2eM{7 zJT{LNN4icLnLvP!Ewik?>43_Xk-W6c`%|~N(~8YTkzAaqSziUr9cx*2f;C`S`~LK_)qAtD+(@_ z6v)gsESJaedKJd zzMz`=g#GSPA~$k=udY|Ck-;UK7mXS^iJi>UHmr|=+dAkFfWO*vQtF3n``AUWOpI3? zEF}hZww+i>%gM19tGjo*w3hd8vdUn+qao=`9HKDAWo2bhnFHc|DnA>=!aD;R&9l;G zrwWa{zm=aejS%-0j~v5vqoQM1>P{-W3`>n-jAv(FHm_W(Z&AkG=F|jOSK(ic-5I2q zp)4Nr(r>kMkR2V|4FR2FtE>9(`mG_+yRU7hY2+g&CU!hL`;9QIiA=8G?$yohE_xEw)9HD{!>f`iy!}WHSiub;MVCN)k+@T?13yj(M z(wU){=%JR=)P$>47q{kzQ08MINlTgk`ZK3+cJZm))tuKtzop@eZ`mK)k_5)%yT-<7 z9>}Gn-m+S!GDG8%lC}JoekmU2LoW3`l}DF}z68$8dut|51%IB1IJv-dbq-=RL+?-g z=H}ajB8^x1x2RWPoD5kp^ImzQ|4BH!2EX=(xl8!F0Zc!ydxizbxY`!bGQy8pW&lifskd_1( zFYZ(53wrAabdp3|dUg+}e8=5%A|-3}=ymk=whX)8wAK1OEL4xj(R3@wdMT7sJC|V^ z|CRlxnxbWERUd83oF(h=9O)w4%Br^=^;tdl>2P8Jr}${b9}yZ0%ebU-feJ@{fnBBz zfGa-!2#}ixv)1#}|2o?*cE3B2V4sr0LpUbrqX$H{3T>_F7mKZQOx9b)1)$F|JAE&Q zk~~ENSjzTiKU4itCzMx8>g>~i?O)fwAEN9c)Q;mH+0mFo`w+J z!*=e&?(uBBSn&Qnk5{r7?c-OxFaJUbhB{pk_WapsiU)LORr3U6oHn`k4GMwBkwiW3 zD*crDtFt&2UOG^Vq{eP>JGmCMJ#_qOG1MYg^(i+MY4Mb~cg zU!IW~3F^Z|k&AaZ6EokH)C$R2*K0o-%WkMH8}GxW2eKL1pc4!k00xc07^5wWF%}+Z zGc3j&YqrY>jmDzU^5^=x{wIWl(OJys9}5vrqGDu%{(nEPSs{!Fc3?>OkDYB@-lZ}J NIO8b}Rk(wRe*?eI-Sq$f literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/support.png b/pos_add_product_webcam_barcode/static/description/assets/misc/support.png new file mode 100644 index 0000000000000000000000000000000000000000..4f18b8b8201e3a268ab1d8ceb8bf46d7a7a37dd9 GIT binary patch literal 3892 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/whatsapp.png b/pos_add_product_webcam_barcode/static/description/assets/misc/whatsapp.png new file mode 100644 index 0000000000000000000000000000000000000000..d513a5356b2564f545f2edcb0b80dd3dbff9629b GIT binary patch literal 5097 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/modules/approval_image.png b/pos_add_product_webcam_barcode/static/description/assets/modules/approval_image.png new file mode 100644 index 0000000000000000000000000000000000000000..84fe94e80630af4aeddd28587b56fdc4840638ec GIT binary patch literal 51818 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 VQ`l&TJs@L&D9WnJluMa>{2%z#W*Yzi literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/modules/budget_image.png b/pos_add_product_webcam_barcode/static/description/assets/modules/budget_image.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6aa6fe4e3d69ee45fc3b8ec92e428736d7a07c GIT binary patch literal 62195 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 GzW+Zw_T9k% literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/modules/pos_image.png b/pos_add_product_webcam_barcode/static/description/assets/modules/pos_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c5932894bd1897da414cbf4cf53d34390addd229 GIT binary patch literal 53403 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 D64Q>t literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/modules/shopify_image.png b/pos_add_product_webcam_barcode/static/description/assets/modules/shopify_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d92c16d07544945f662e5aef705b5b69928e20 GIT binary patch literal 55162 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�^K4way@?*$tmko*w_r=Ww>8MFTj}YXOuvSzujJ z_o%GXV8b1w3@lY-W$%EmLei{m|cIA=x29~i7_ zxO1enZ*EDg?@cZudnB~VO_r)s(Fu+0votHr=(A^K5gMDfq5v(SkJP&L9?x>xL3w?ImcURT(BNSzLZ^HVMXUMcveBSw*i z?n~W!ealIYrRvv*Y~C8sFJGa?E@u=*r?$ydjkaf80u!U@GPWKw&-=@4rbr1b_RJGg zPES)IPO;Y`#M8?o!>lb=MB)gKQD1M%F-%9#oJs{8fNO?IZ1HewZaNunyk0f>DYIu7 zwm5r)a2wB-UvjQ~z%{^k&QC+}FBjkk`9UBgYrt>y)~4TF3~o-qsnyEs)m@ct7G{a` zuX{^9#W1TakJgEVtOw$WF^ma&+~nt6Ax*hA)}v8PWvwvUV5M(9pR&Z?X!21BMx6hg zxi#%%E0C&!m$DGN5K?SAkwQquL*#Fb_Zb4~5M{WN88waLPkTZ_6eF2wKRRKTAWu&>R`BDiaTvzseRn3`ZR5;9XJ$BQ z@2}sG#{NY^e*2Q~>%JfnsgA*yUobVXC)+Jzzf*+_&Wk4rEmcQ?hlt6fiHzQt-<(g7 z)m9X_=1QiIHz(a-0{{<;wvk$K$S(8EXu71)NY_tbMW$|*y+~)H6mzCdikM@ZdB8HN z2k!oQ5z}1E<8Z35%&r->(Np~Zbs(4eky^?2Zt0Q-?j4<87GXn`Q``DAcuqQHqoe5f z3-!nXMfEepjxsVdNJxQQ(iRF^3xvd6M;z?@8Pz-MM^u-ed0K3vi$Rk#CX2tv?Y6IO zIH%D?BtTE18zzKuu=1t^&5c?$6fYR*q9j-n#7*xGS9vXg*5tb%&QcAfOH4*nE}kfN zi4G(ev#y@0nrx?Sb@%o>SRWr}wyf0sQY6^3)@v4r5Vspz&Tx(Tk}P5Z#Wt#ZxOcv` zhotd!z?1CL>-;#aT5ZnO;bRSQX3T%$C-QoJWP7dmJ99Eg9t*Gik=M{DGP==?*U5d$ zH`WdaEMB~#9a?TX4V@aQ=r?A?ogKWVGF_p24E#r&CpyKU;#LksmX1tEb#8Bl zds9L|j5FbY7rv{q4Gt#=Aul^Q)p%#G9-aRBg@ldTr*b&f^E;fL{lFB8BY}&T#~-*< zE+mz)2GorHrCq4^+gcB?GzrNaBH%qPCKBCDU3<)m@?o8kv zTf_s0JwwwMQ9YUUqXq}#ld>iUg~%+VFU+RmgTs1UU`LjH&p9j8YUQc}*ly(t{BTS0 z6`Gwn+}^K>B#6Uk_s)#^R8vQP*_P^wnglaQ+>-dFccOR-Y%BFfl}?MWKk&QtS#=A9 z8AiKgh;Q69nrLomPZIW>4E|tVNSb{tQLsh+(5s~}-DE6(<9!gMgR>sZWlmJM6MSfb z!S*4RToXS7f;tgk%h4X?{gv4#hq|CrMlbSD<2L=lF{M%W(L?I3Mxi~)cWBxZm>NuD zTfrn|9N!QF2fw0cO;Z3#Sl1_TRPvXfSJDR$0D^pU-y>ZBbcI ze4`n45s4>=%bw}g9QydX-b*Zz|M~xydb|3?L~9b(vdVrHdTMt`Ex+@tQUEe7Rs_C^ z)uE`^5DcT$bIJ;F66YnfrfbV*rZh{+(n2h}S~_ zC?3hLhG!ITsrU$+|5f~R_tnYnJ~6?R-$@#z7#sXw6lwr7YdXBN692G~mT|^Q;5l8l zE~)~-iNV$DC&~>(Rz#+FxjXYhm8^afDgjm8_#ahV67OS;m@D@AZ(qXl+5f**1rQQ7 zihbOmXTy`BbW|EQi2V3+{;W?F?X%^;v{6vY`U|K0*Sb7Ut|tuF8r#~2goTA|Fa$K; zJpwI(X)d@M=`ko1Jo<~Hp7Lz~R$lIkUic4KnVbYe&KcjCYdlKzd!GMp#JJ#k$LMQd zh;7|QIe-7*ZI#aDLZB~RVQ}?W|L?G(v4L50al>`?e-Hh@Zi~1T>H6V!u!>Awr7B{jBFvo|7*S_xl+T?%#$oTd>?jy8Pc6|8% z&>oU585@?#ZWO<}_q&WSKhTqctS_5ag^mGe;uWRuaz(ES`!9)M-VFdE{AOEf8?Sb= zmjsw;|HFs7Qud?f(*@9X_68A-D-ADPu3q&|ZGJHbt`s0H=DVCTnnV>cS2Z(uxmFSX zYZ(6u^fy6+_&(t3JkuBXC)?%kWdNiIj3Q0?SlEA-ak~w4Gh8H>;!4Y7EC9jd%qExq z_k8}XwzuPtff24a1VVdP8t2jj)~QKXkt=xmZ_dblWuPM;%XT*_u4wBQ1>|Zq|JK;_ z9Y~PUeJwmf`Mcq3IBkHeqsIUK=Xd>=X7o=A+lKMg0`=TL!=O-I!QTwUE3J*)1G*`) znQeGwt}@MA$NT>8QTn}_8UhJzu<@UHAy*Br>2l$>9Nu_&wdH@Sj1;=G)&APN z@hc7gBG6oc#{VtAcrAn&up-r!S7uko>n<}u!wGnH)ewGF$oLE}36i$VfBEfy{jlG0 znPSFmGb{UFWwe7YyP2KtePxR__Pd+~MOm9sS4QdAN6!M_S0lC}jw|NNc&!ZRU82$t zlB;2nf7SJL5!msQgtiI|uV_oV5ooxlC`$Lyf9dy$JYYpqF)zY?dlJNvPeXws1X%y2 zUBR(y}-WCKVdq=h#^M92wrn~HBdiZAGuf9e8d2%_~8xwP7ekt{e zbo)+ft8*tDOj(g(X+^K4)`< zqj{)`)LD`9!{MX~7Wcqw^?^(CF#^JmLt8_FxsTqnY5ZJa*<5sRPgQz$B$3v6^B4$q zn136;u9@r~EZh_P8M@Ftm6A05iAVfmp{!4a>U8ciZ!j|m-Mzjmj&v9%@=YmKPjBUF zMA*q&qSkFw^!J4sBI2Q`Jw)als=-B_elneEIY!o6Zrp#3-G6VLniQBhr|xGp&vi;d zZZB_s3`lMyk*^eK*ccW<^z_AgNiBd*CxLTw@y7wR6v}CiG5pkQE@cP3KFO-*_qGK( z5wuHLO5UGhys;@nZ-iTisE>;?$Q{?8NP3N9rA)sa=S&iIJs@wcWbM{0rX`pwQuxM4 zc-JebA?Z%^cXR&3O#g~o-YW}x>hx!#S^du!4#W1dk8m6BAAD*tf|S)Em)sxb#`VLU z_ogq*%h$6mZFLd%6|Qtw9ByK<9e9Y-HK8P)L!^FIp!=g z>rKMDj8dGnxfL^7k-ZnuzI(jIRs{MdQe{c>dJQqZ{T@%BoB15*6V`#yL4&-=nLnZgE4gge)e19;q%R~^CQ*Hk z0yDj`A7>V5C6`_*KopWV-;FYSROG*qr(&et} zv5*JPYqNp4%t>KOz9c`~VYA*&(ozI}-_-evv%nPL#tW}FMrDUY=n%V1^&*8-?sof| zf$s#Ftz(JrU_N&&S*BOB1FX`dGpf9{7qq*$v*4&y@b+9L^h5Y^CGXv053Fq)kHlme!#f~6x_TBAOSsV5YyFjm>2q#rfwAQ?D6{v$lI~?;*TcO07970QTT|v!&X@gfj$u*aA7!^3~xT?oow&2h!n!a6(1Z-!0sk z>){-KlybS+&O^vG1cAvd*U?dq=ag?KuvZ~^t;XQC=8hnhEj12(jEisxc(xTO z`c0^ICBt`VtlnrQj0J#dr_l}0+_o2D-FKS|7XxI%{^GdN8l>6dX*x5TeTP8G2e)tnh@E`_qmG&!D$4c*u^fw@UO~m!8m# zDwUK6plK8HbH6_ffA9{NJ_YAy@H(#TQ?C|HbZmfcI0CQmsS)TcsXk_QS2b}ui)M0p zmMaK)agyAPnP$>nnr-DMF+TO&eNFY$15utuKiA+GI!!p~#bU;DeeZPsOGjXn+iVxl z!v}f{cfibryhVODG?#6{`|4{*PehKFdtptI8@gF^{jfCS*O}`ur||GRxe7CTVct42 zK`YN!HlIa*#JY!JhMLX^e2)!5pE!hH?kxgl&1C!J+u5ZnG;a@_B2krEuXe7u)y10E zwg|vLuDSRT(!HPF*G0g1g5tr1umdFx$4lenjd*6Cdz-I4Oinxulgs*g>mIledwVkk z7X_&m*RaegptxMtU&7C_825bIWp`YX8(2U@2{qpJ3!u3rbt-|qyY4_1h2a<@;e}hM zPtMPwH9U{qZS9cppw{=x`HFcWE3Af(razZ?0oiWEj*;D|!$Pb397cp2vOiNusH%@i zCu!iBK4&|}Ne3+7a*ou>oK2pGgG{EoeU{(M#1+|!l)AUP8A~p^r?nAnek|Ib*69#c zV`6kR*5gpHbQS~esm`cg^RRleJ_*o%2k#7|qr(q+7F(A+1s`m!Ui<_iUHIY3%X#Ag zsTHLzYxC5r1rr?!qTlXAwIgj9%D+jcnrC5ecVJh<%^u$M97`HG!5%7meiIA?(%n!h zOEkMLv%Zg7kCtNTe5T|If}P}2sOUU>C)Xmkd~`}3$xu*~ z@#lvuqe*UG9j?VylYg6Qdk^W*d49+6l28()V$e|q{d0V2CvUN9kRU{-zuu z--gZc1|Q%NE~w@6#Pr1dFgL7X(d_lqJoTB&yHT;WVt$fLjL(K3^P&)cfNp>gN0_!c z86gB`L&0%3JXZZ)7CvYfs?4Prm(k1`jM+^_4c-_Akv+rS(8ys`HG}RekpUMg)Xx1) z9ap$KH(Haa`dsyy?y?)ZEr5XM+wQP!ugi~yH&_EVOp%!dA8ei2l~aub<67hEYYQf- z=0Vku(+9K8<gv%x3?v?jGhODo1e8(vC7eVMxOpEludF`v zOp&+n9?->fK(qD*-TFAGM))Ff7|gIa7fr{oJiTA;pP!zbQoQN-+D|4+zunhs0&|(j zBu_OGWNPi%4NRt-lWUICKG?aBQPw1i2-+nLJ87C5Igd1Rx{RkUE~vvl7innCaW1x; zNUrf(gxv{49cP3dS&-w?v>)U%99kb8X1F=ex8$0jJsY`ZMFp8`m#zIVt3HJ>m`{yv zJiz4#32QDxjS4iM>ad)eYfb z>%l4-DfNz&gA>nF8b>!y!{IfjvJr~o0_&rfC>G4`;-r+i5U{GhA=wuz3b*La@E)K*e6WceWj^yCXFN zYrZ8wJ}#tWO32UGT(9%kv)rAjaSCVEt9-IERpG<7!UUo-+d0&*6ZeezD(k3d6ltTR z_o^tHhDfkp*nRT!R@%E|Cl}+3DH#&R3w;i`>1!59p~Q6A^X;la8gHH zQ-C{JuWXfJaIvbNAQHshIGH`U=r`k1Gr#AO)ekV88Ft>VRu&% zSk0+o+Z-QfI4R3GI3)BA#H_JSTU_7yBzZP8sHgK1&)&7GBEW7ME?Rddndym-y~M`r z@#9;i!9_m;AyMO6L;1U&kNYOutZFM9u%(X#UY#`i^0xp-t6}MoaOIPE z)7%*Sj}e_muj++r)J31RxdHj_7}$(2&!LO_ecnszQr0%^cU>rsZ#)!>UhMAd+N&t& z<|**5@QsYTaSCYAcgv1l z5_w|e+#Ol0hQ|fiX;K!`YMfe(%=EzPl3}f^Y=;&NcN$lcV)REFly%DNc@|M^LvVH`Qiw5>Up$?;lFgKu(rr zqcFZY!V`Q)g83UlQ)FTOx9OetMEolYt3_mrTJ34$j+hg9E0u_Vj*ivf1&BE(`IEcZ zVlzwcG&g`j@&9;vFG)z@K99o`NE3}RMZ_2dleoE zE$6uW0GR-_j1}h@I2BAVUB=}vE|emfU$_(b+233!jlFY4h!OtrzON(f@7#2dflO>D zZF>qevr_Zhj~f81%X3<-QeR>hG*SvZh>)kdcWsN}1Kl5xzGl$2ywolIwf(tSySd_o zVSnrF;hxVO3FuRw9p_4Vu^s}*A1%*YZihJYocj-rz*SF0vz%^!K7+Q3ZZBAQ9>=6_ z^A2Q3u*AHpIyn07M%zekjO!9s7NA#Q`|R5UYETmG)5OW&{*$b&z5iM;X`wmPDD=DV zcPnO^3;Lw;**JLv8JWEYDDBgv)hdh=80+xdgpeD0e^DBImbyUOkk~KpR(hf~IsmH3o|~y%ut%D9 zB6MWc>OF*8K@wZ~`TfBjk@0TjCXBEXaBl}T>Kd$f@Xu>u?-KZ&c$;f%hI3R+qT@AT z1S~vq)TNege$L$+Z9IoY-_tN!;U#Wi6w`YU1t=$V`|OdR)=jYTR^RHe!GRt6O@fly zhdLf9>>z$+_{&q84VUn+Jk7F;UiNo?0xUdAc~=YbBqmz#Cun{@9Fut-X9T4@L7Egd zFF3{Buk&e<*{|6II^Du4M;J+MRrd z3H|ea!c>P+2Ku2s=M8U8_1L~71pHVSv7}`WGphI8&J+h5nf|%?8b>?fPwqe9aJav% z6`H!o$>jWImR-ZM)GWUZeU39A4Sp3wS^dNt6(j(Ma2-;BN;S8h_k5zNu6DnE1eXyb z!i1ko`XK0xj!rtA&@mqvHMbkIwyAtTHVR>tkNgY1j}%gJKUeh`wFBN>j(O!na+4sD zlH0WN;WPK$Jtt6po zzx$k+C$nmCjEn)FwJiEU31_O$c!_x)%g3|}x+8SshwWb2_-=v+;2CIPg63SUIuB?v zSk2IFw3oakOwt2mNZNcVWF2DwKkOjw3jD?Z$kFvIpIU+Wab*NZ>VWr^& zh>4aU6ouhRZjVO|G5DBGxih)>h+ic(vua;)|!taVjRJ*k1 z;`;@=KZKsM3xyj-s2u9Q&NU2{K9LU!wk(qP4qV$%khV5`gi@7MkBOLN#NMK_YWIB_H6jRkOxgr+;nY8^sFY>ipzP2Cz9z=%(jJe#CKan;7S{&5?}5l} zP!)(c*MChmvqzn>Y~wMNg1}dOa}cHjiMoeAvzwvb&*h2^ z=yVG2M;q>9KM~D{#BS~~U*EA}V(VR6({@dj=<#i`d$)b(R+eR7ai4`EIfi&gVPqI; zD4GscMlzo7teW%MeK%F4YXimlW(F4Z*n@)GxsmOeHSVjzm+ns(3|n?|A2)6e3omlt zbg~J)NN*QAFvh63RBIFq_u281crV@F(pQeE3bmwNGBf| z4u=c4*(=^lgCXgj=+{T7d*GY*rll=QuvABulM@DP%euL79)T|c)T;tyV+yzu-YL&J zNyf3F3(R+*2?Yv{Q%;|3{jtF&FIYf|(UF2U&H`VJ_GJ5K!ycpg zR~?|az5&2ldO1Q#&ejsX2z%l}`Y^1BV$Pp@`N?>+atE&kNg@$^o|Yp|t88z?0^O3| zl?;pRDA;+F(9A;)t4(v*%(}DlW0%<{B)t4dQrxm-gixLRwK918pta+jPb>#K8l9$s z?}|cLn3tn@nJv>Y?ACVqI3h{YS{33;ckd~oPQJf8v9*s$t9b9;H}N)A$^LfDMt`kT zh;ZB*ICSgP)N7>Zg{i}o-#GnrIfhnGIAp~`p}}btLGtM zgmh`w-I7vkIPZnsjs{k?>*H0*<}KgKU3ceVnZ_`*9*OPIYy!u7(_a*?rS?)ce7N6- zI;^nwzFxR(JVnY9&Cl?nN`5uVeY~UMq=HSpYeoD?d=>S@;~P{XLM(IrW(lha!Mg@K zUG`oP=L%URlciKIrej(>5PZ^f{rydIO5Mq_4D{gIIs+{L1(JyU6NVH=mskt3^uwA2 zh3?4>uVpFrJuJ^ojC-lVu~_ekBPw1d8ag_udvIqc-9_f3s_WZ>|a&qk)KG@*p+rpu@sd!7Kp>QD+xyq;CM>yAKq zVS?7Iv_wlE+4@qy^qPJ3xgS-?_Jc=84fjsut-|+L8WDuxJuEK4BdhoGWaf2D%?n}IthsPp1dW$XhQ_|kdT)6!66 z&S)vS8?Ls@n*=nv7xrg}=&9R*v@(p}I3@k2#Sm=O)A1ITYi{o(47Ei2I=UC3;2UMK^UqnCuSR3bZMBarDoTmA{n)@^ zML0fftZNVQ=fH_RZ*k;|zA~{-O*II;7(yId`s-E3ur_RFf*Suagl zUO4FM-OX`{W7NuK@xVjy1w!7>taMFf=1Xn|ftuI9{u%R0CO#n3Yz1-e%RUIl>kFr-fg z)m1E%@m*7iS?7IXg`4tm9CQknxz?AzdP)LP?yY57UBMG&=hXrAoxdKc4gVW`x`NvQ zA3rby0xfk(+fZG>#GI5bSN&-<_D3SOYF#&oQ(CS6zC`FW?z+orFEWmKedWsE2LYH^ zP=u5}=xPJs0bUO1ILQWhn+W)o&^{}c3Gj$;F4bsCQ*rxWH7@=MXi2E}qwc%kg`Xw^ zxF`)vl}5;aqS6d1z`3@wY_#i&2*js?KtC?RQVoBnuwOa$E`9@A@vPp^Expo8K9GM+ z!&WKx`9H^kTLzH7cM`Afe{LWx0)WoZ^M3){-}uE}z@s4`0xU#9<=${(=Rcs4+(=)(~i8K49 zOLCP;^2}cFl-)5(h6M&}i@61dW>UZ6s9OoXLuycj@6#6h5uPv3K)vyST!5WwHji-3 z^1^g*kY6i|8HjuSr2q(k)}x9}k4=9!ehtU>lDWYUrg`JHr7~_4p;p5!x{VNWsp&V{ z%XFOg>al--ZbhY=aANUwhqPlqH-L#nMQ!z~qVq~z^P)Fz$b9UGqk1P?W_trXi}P;2 z&XXQKU+E<+|D`XYB9Q9iP+W$I8x1iVDoomy;2-kVDG1OwMsW8pxbq(o|GYT|KvD>U z=g}%{jfyF+p^!2+`vg-NQE>N|ElO#!h`#+jx z&?O!WxplWeBMx0s9P{XKKqyW9hde4=)w`hnhxwoUF0w!vd(!ph{AawUJ>U6mNP9di z3Z%MR)X!q<#C)mKIwK!fIkDTbCUwWLtJCWE+@lIZ5vH4{X*~?p>6hBdMGF>0*Jz7NaHXoN0JUP=4hITMV*qx_kdi2r7B9 z7$vj@l4yHkt$P?#s5G24+HG#0!B=T*509JaL_a({AKgKTxoEF7OlU8lTUy^Jrql}Y z&Y$DM?cryp6f)yCR8fokVJWz(xTDD7;>W!dAZWz-@G4yN4{pIFR?tH zc+?7eJsrgB_JdQvO;_z<6gG|Ec_6rv9N#7-VTprH2fQsX`MBbn(`dB$fm4f9vufAt zcwFRX=YwpTxEDM_-}ks4!*t%@f^U4bOfR>0c-LR+d?varv$gsa}wyvAE0 z0H`nPmuhF4EV=FX^JI9}a~6+DCIEx~2EM>frer)wiV4!!?uq=Uhw~UkAPF`&3loTl zt5P-_(!JB7wwCqgtz!JFcrdC)RGZYMdmz}c+Z8oCeGqbI^^ zfjt_>7Za{aje5aS;ykXp8*kMHFH^>+lZe-yOk+RGVVh-}bSjvY&noA5eul!!#w3u0 zt@f`ZU0>C&Cw_X6`vB%}OkdR$Xhf}EU5EF!sIfzgtf2~Kp%(TA_xMG9!oYVz>?Dw- zeW%!aLs(z$D8hOsz2^BgVuDRvf+6FA5oXJ^A!zy}dUur1m4> zmSl&<8y*yrWnY%NqGI)mD*XzRKcuMd=r~D`xd+f@Cru`^I2=(PZ>g${@5n%Cu@x7J z4#0P8qoBtytX@g^GjE~`a1hoxr9L_|M;GbzZ44h($*J&M}{-S0>`HHF8y&-77;Op zP4@?2^mccMSM-B?Q$lY^7OZ-A;Fg07u#-kCXO8@U>o01$!y1bP>1knl4CJN|6sW#dwLMtf6 zz7jipmM%fMTgtBxG#}NI83`S;q(R9wi>BMVx9)JOM1`61Z=dEWpX#{!TL~U*l@=sJ zK#c0m`llB=-3^Krlw(D-KAlnq-_*OO(s=da=F68z$ICe}~`F?s!4!M8Kyw1cR zdY+y=eILtn&txH5DY^dOJ!y?XWHaJXD#l`+HCg3(+ANh6ZSTJLKENECtEm5Tt__Nr>hx9#n-+lkOfQl@?%Ag);f0W z$A7;OQQE|D5>j>M69@_VBiZM*i8b;h|MaoxT}L}#y3PFl{+Sw*H?J9Ss_yhHYwqe5wKxZyj50*Fc9_~Hk_V2;0N!xFnqlLh#;x_ zuf0lgtRD|SK!#)Zdc84L_W9{(Q{DT({gvW(^vCQMCy+F!5(KN(##|;J@rGUO?tFU4 z&3wB3I7oS}`^J+;gUwNeWNJjqjf|T$p>INv&6!Uo9pkqm2qK$4&BW*qm1sN|VhMc# z2DgQJ#900vse#@!B=~d5cHcGw;I~)3|Ly1gdDArO=?uU^=vdn)&Uzvg3fk=ug0r^I z9faG#2_L9#+AaUod5=|5Fv;b2i-N?Q00drl`|^1_;L%LS+td|$9`LgHjPGaluZlQo zlE-a3y>u<5WByjBdQC3m;UOx;oRkGa08xb5yZnY6EdzPVc15l8S? zwNy5o!fGhc(A{zbN>h_kbt~Ox)N4?Jdwql1_dGx@k%_&kQhJWVNw!K&AGSejvaNQD zeNuq+Q*2m8i}u;DCwxv>v2du;9PecH1IhyZd3wm|wa+`vFw<3xp7|r~sCPMgF53fC z^gr^tBH%l6dqi^rJWVs7p42#h&hr%?s_WxR86IDjk=YD(;L}(?oh-L>jo4?DC={c2 z*nNQv40N%)TC@~8_S_uLZKCrBt_*0 zn5`;9AVY9zd^ZNCp*|t%oG!j@2Xy`O!#N!Pv3I(0oI~XGlx`*Qn%TU8wTieh$djskaZedW z9afDwH;IjP$?`YAhI_&8J)2U@DF5R{(+dZ20pk=2iUuu)%(fvO&S?#r>q2#wLgF$U z3m*{bLsJ4)ZRH!jsuQ?#tA{_s&cx6S#S0Zb?V2{g$oNRBTfsXDNrp})g>)8Gnrr#$ z9=)+u%zLM(kt(?9&Q9*O$UqAJ$xgLK6^TEG%f#l%dtW825=VC zElTA}qTVZJ=Bcd@-m8RlJsW>EXoR%g?&Y32T`8&$qdIxfx}W~YQ23|{Iv|qFmx@F+ zJrujCv>ej&(no+22+qRAh4%~>-+ECyTPb!`s88!OItxlz+j4i!5gzS)R$Rl7U)VgE zP1V8}%F587nn!x=;7kKbs&x!ETpBcysMviE#{=~&&iq@;IZ#2Rkmw0o{N{V_A1J?o ze_4wcF&{()LvYZOh#tmR&xe^mwditEc>iQCvn;((ZKl|o6YhzMVL5N2C0>5h6e*!3 z2X-^~;?fwt2~c{6krf)#Mj zP!lbI0B#>Mn(?a5y1Ej~v0v_X6jm4sBcJc(Bil1+V^U}xL>V)9uJ;+r zlGSs5fZuF3`6z4WDANW}!iT5pfD8Vtb)LFlM9N=LD4@w7roHg2(h^>dqt{HiW=o10 zib~Z`Yd~>?vO{nCbVc`92u=9XKt^hw!@R}2dBIgVxTB|@Y5RypkkQcgOTC#afyEON z98lqgG_sN9bjIYqxZdb}RNjWyx>A;4QP-!%BkjFcA#LDu#n!B&>@o~3p@oB#(9yVO zn7j+g(bf>vh{|ezF`-fEk1P@&>@Tb9*|~gT`f*BlSn7{G?}#V)hL3C2O%9b6v!d;H zbfb+Zlz(`^W%5fdqIb1)_s1Fhx~mIdJ!PQ*gu_++amk>H5AEVV9nF+L)DhKv%MHpz zH+HO0G%JY&*Lpz)AG{u<7{1Sef^gy(J`JY~>ZeYvORa#)*nN;4+DKIAg{&xdYsgQS z7W6S(ROsEO9r%z}2}y%p-=uI2b6Op#=^9-1zR{t^7mlL2PZtl-eG_ZM;R+OkdCv62 z!8OBG^5V&*aO26|#)Ua0(SvFT4ckqfh;!-72H`rag6vM_-!o-hyY<4(t~|14;s%`fbuhPfIoI zPtj00Zen4#U=oK#jwBTA)E@Qkr#6V&=l8N8tEcLAjOuKXL zmd4~uUsC`P)}?fgGYQfKx!rSYf28UC@Vnj8LsBK*k2_oLF6`=lL2!`#;yEv6={6{O z8MukKFX%Pl?CD`I?A@5Yhf~T)wmtz%prbAYjygi;Qex;{O4RRFW=rtQjF&MV%PWsG7M%~Ppjyk zXimKn!0+F^b2U`brufe}NTuC0K{lT8o@P#&YPPxDVOHh)fh6Ekna?VQwV074HMu^a z8rQqL2&8)6_)Fc%_!k4htD=gl*%oBpeEUmrw>rD`6T}IXoTY`15cc+I5c;WbJr|h- zT@DG5$?4`8WJll7OlmDVZ5*PCw7u>73CwlByp*XqAba`&c|8#~n!raPsm(#@MFMKt zBy{bJN>7~FH7b*trI@9dw83Z1qE&^hI{L@0CGSywjorC9iI3lut(2a5VdqIQB~!i8 zhaJtM<;QZr;LUb6>NypyxJ<;{8nN~GG6+^q&yNwNAEq801u^2Gil#-4{ zFn_c@mZAS?Fnb|N@&nUx)<7YvQz#5Orf)-ZeA0dK$2jL)8Iei^F53QJ;u`f`9EPh21eyEjgVC^Y5eEU%t_dvF&#R)54)d*^T{c?z{aX>&Jv^x z3FbtxqUoZ%Ib_l_=z|SXl}0y}eXD$E*rCS&I=VVN7N8&gakAD!tg?f=y`yHNu=V_{ z6*9BgcFTJ@QR!_ZJI4v4I8!h6wj?X!4y(*1E$3`Y>%R9G9GUhW0v&g;87gxWpT}nd zODdNLtmq8adVk@lF%$-_Bjp7T`)#$23cK5R%B+A=r3BCw){dTaZ_IAFj7r}Ot!e3< z0@gLh&G-l$q?V)S(^W7TMl)|uaqq?dL)Tl!Mb&lh!zv0W5{iJdh=72AbcdpJN_Tfj zHzO*bBA|2+-7q4ZLw9!%-7s_x!+XYCyuH7_=lzEd40HC`XYYO1UhBH9wRTUjj9Kv9 z$Q_a>u*gM__(`q8iSt(+Z+zL=Mfnn=WxGe+Qa9ju&sB#Wis~;c)Mzn?-9wTf?0%ZG z7tNMQSygf~yxVPEYxQ{usWRJQaG?p^&HolHKaG{Ehd`{}`XE~nGN()Fe5 z)W%|JA~^JO2-~)3gB}+9ARiIaWYcFWd5Q12H^%|Sa68PG1-*Eor@`JD8WuAmjFaI% zeA_f6vGI22z(FzmtLzW8MMp`y7M0PGJjDL<8CS4=u6%&Tz>tZHpL|hp2J3!)JIm_eig9RDbq!2>0@qsy%DyP83~SAtTqvy^Y|$i{;K8 z?)`z0#nT?Y(cXF+J~)DO~g+^w2DrDi;lN;x^V3&UeEzth&s!xTn|M;Wqb$0xIAnXrMQx||@ zOrCSs{3qd(QtOd!0Mvl{n9X2{4UmE?S?}X5F175c^&oU+d5A~ph_lqoNQk#9_EzdU zZ<=Ix|M11$jpgUrJNinE{_PU3@m15~{YOCf3l_ZDOT9hygFzIQoY3wF!U|3uT?i8( zipUvFR;&rVHzBP%Bk&zOnn3-cQhAU{g1Mm3fDfQSVyU!)LR*i zb~SCcD;8Vl0jdbrg>g@A*3(YaCtBZ#FoK~j%W&UwzOz8aOOi_j zjnh;~1jM1*A=oM29p94bzMH(S1S3eayxfzC|9xj)fs5^Z{JKQg%B)r{M$locyS%>O zRgSOk2{S;Q)WWW7LjU!x0dC;a=p4jeX&XG#wZ~b-<9$J8O8--_I)mJ1eIi=()>#4! zC|*Fy>)a~Rf;g4jc6^T|X*Kt}Em&FYSZqA8FtkM2tdzOlqLsejlvpByy;{&HolH`e z;AcS8MZ=!x%#*h9cRn?7q4f2P7qr;&yj6}&8!qH46E$?vG_uk?_e%<`R1?VBQ*5Kg zT-x+4)AqfMHt*Id7E5;NTUgeVzul#buO@yKt9@Fyv%47UPJH%t{VTQ*nR?M3B5sy# z4B98&K3cJ5KU0-WJGm#sgrF7RG9MxEBjE&c4<%+C6-B`b6Zx3r7kM+hzVneR#~bqy z7v)I}Ff`I>dGk}wzaabZ(s(&UIc&Zv@Nzg#0y`7iD~2=l9rGrYoKDUFT-9hf1TLO% zBfEU1Fwr-m%AwQ`%adQPxxfiD5Ukrf=AXSgA>_9`?L*c3wewk-XZn_7z%w%N(5K#! zWqqU_{>d{iu^G3_+_9%K@i-N}W9;Ofr|)$9@-#tyarItp@9bP9$5A70tkua8ogT+|wDWC!B264)Rc|?v{q# z+zktzDmq*(S;LlN@OP$zXB%_}8J)f_f8$kaf)hgL+eMjOqvESY9iQP+vHPQ&1socY z#4Gvum~qoQZ=&ucNWIPq2DUe=yScer&pH!LM4z4<;2BjGn@RnotXLc(FIw6<>Dw7q zuhE(-%0J+p?IIe_!yFU*KFzq<`5WLUY1HA-z#h*WE`7byEU z7lWg6er2X2!wP!=D1dPI<%L(o;p0ucnj z!jVFcv~vGSy80w|!=4rqB)G_GmSGU$<)$BVZ?F(jYb!&#OG+WxVI*8F$jc-&d##CX zyNg69pomwKHODiE$9W`iko%Us4EIG)krG&~*=4F0JFavm&zZ(t-RQWV3DM_ zRXCT;&Der%wEi*5&QwT1@hO~ZeQ%dG-Y?V(kNq%xdp3r?+dD(>C+q#%P5vl49`Ee$x zWBjKU28DF!L|BIt(p8xmQp*nm@&L9sTap)WyT;sc0=+oRRhmLx`{rLdpGemc z(|QfRr{ce{y5W%6zhqZvDnfVG1#3)rz{O$nEijDV;OurLccb3m_+)|1Hvcz^xG5R` zQl_)#7Ba3<8lbv!-epAAfXtH}gB$f~8f@N-#FNFDF3TUk2OI1h8qQSig^hOMQ@Fo>Sw@H=nx%_5|9Jv2fep zK!`qQKKSZJxGNmpC>XNEV>cbNF-{l0wphn)vY^np0{Vdj9fbb~=(@}yY@OU%h(cGr zT%{>QO77Zs7y1kqU%TBz?t2chGy2}CXnP`FOI!3&l3p38PsV8C1BZFqi%T;8E9s!5 z1=!ZcsRM?;!yGSEk~pOn4|)iwb2?_2`Mgm}m#+I&{TFQW$#Syn$1LAGHl(V#WsMua zqiveC*g6y8G{d?1c}72cGyW=la7E46ouldxfY@vPEt3k6OJG#8Z>GWs=U;UD6TF}s zt-<8LK|mbgzw9|e%Xc7M`f`%WaC(CP*;2_g`0>I0N80Ivq1>{CaTQvYYQ03H+(-(y!uctymcu8>B}*Fex<@n3iT(_|e8MOQ;Z zN1gxv?~V&_>q^l--$MDa{}SA&BT78&*Z$6YzJFqjk`fS?Fh3yuCG#N7%;!b%@t=xN zDv!@aR)hbZ$tq%vG9Ym-(vE){5P6`1g+W`Zd^i)(qnh@E8>lIzM3u)8UmBkMBhZ+o zMClV+l|54a?vzkAFqHBg`GNm)T*gr2as*FS{r4#Vy##7py1j>U{(81Qzt)MPv=;s5 zoIn1)3o-(@3#d7h=wGS9zw6HT1f}6YZdIs0`!iNg@c2<2b+Grqvp?foCrpUBtJ(Rj zUF$aUG4=vqc*{H`bdOx#YrRMLoHt%l3qRn6i?NhGp$@eb*;Vs~F~FVGOATTR{_T%Q zHBe`R)UH$$>uMZl!>~RI8UpC!NFr{~!N4CK1)MVFmwYVV)p6h)2f0k&9tyn)<}3qt zXlZ2b4)~TR+aYEfo0+WNk5CVonIFo=5|Go3hNB-PwM{#NtM^7{ zSL*GAduQ7cnv9vWqsiJucZ8OD4&QMMt((f{HngYA$ca8bH$5`kjd2>oc1W@{-B*Vm zYW`lnj|x!orw#tR!@m|u6YA96Lgy6@yFWu6C6a_ugx)>N5;$=8;dD$jp{YLRa?XaP zD$+e#`uM#>I5T%dY)Ps~yHmU#yzQjBtj*3$9%i|mcRv1I*qhCWJBeFT8@*`pBQXKg zF-`RIj>7Py`!geL=I?MvagU`jN&x?;ZufQ09h-Maob)A3>$H*%{6(v^7v8#vaUA=~ zSJS%Z?&DZJ!pml`&uI;fYq^x7ZGdl@`skEK>>pzrGel!uLIo?LvPVd5z!1BHHhHU_ z@3k&==pb98oP$H*qR@LvF89>;7+buwVrHd1)wheWdvjeeW#d1;9M&4xW+w%XB?+X- zeA#e3_>796Qf_gh!G}x(dY@>NJ%iVbS^c}J-h_dXjsM*4Yp!S74F!Xvtny0l-qXVu zTxLWXeS$eUZF(*S<1}h)iRd80O#-jEz6}3Z$mQdDawOPRULRNd+B=jtdulJk;=ogK#C9(*cL>E^oF<<`W-VX0qDQx(E8B z@?N1qa)G=~)Vxb1WofF-p#sxF!P%1q-}ykVrP4j?=0r1ZGxvqw6J&5)<`(yHt&(4_ zE`89s7_xE?*VZqM)ekBgx@p!>ZlW#oEn=Xw;`Sb2NBhQ$2eu0$y`d|zbMR(;wDuyx zN3Qi!V+04LQwIqTrAihu?K<+Du+Ujpr;884>tV-L*7^7u@IYr-@_i z)$hluIlRT3TWI^^1XHO2F}?eZW$c8;|B1bik&)gvIhmyDr@R|qiuS>V&SzaYxCv=1 zQ*s%^ZedkRh!iqeIY8#|7+s{C9UX45pTHLFdUHQ&tfaUlItd8z1lD3rw~sebocn7$ zF7=l4OgzO2v&Ui-D|?YZZ@ko7%Zrn@)6q35JTljm=3Y)mFAt^KYL9yQQFMRnbPMt- z!zzmBf*oKhQcl#2)>LT-{Hr`43On%5XppkcYgze_{(K0RIkbN`7A|wU>(MG1mcM)p zXWGM>vnZqE-hH0$quUz!|CAA$!F%iC($d^a(*WhZQVuZvFXaHR zQ&y8cG>c*J!8$ah{d$oY^#b2M<`ZB>UPTs!rTLi?1OeA8J>{5wuP4gey>RbL4 zPh)bWu8PcFqf_n}YiiH)C2)jhJ$i1`aFP5}%+hm=<5mN8watcAob(@%v_XdBq7wuyQ=H_gZ5)86vuGeUK)VBC!H|?z!}PM zm(T1@Xo#k&!7MJXIanuJD-!}2qOyF9ito>f zhAj!}&&Dx8{nDiE=5|;hu=n$|quHf^_{jFb(4tp1o0`gW0mG9Y=KHMTh&fFKxx} z>?HD8hO9`5$xOZ$DTF-KUE#u~wOg{UJ@c|s`SBVxb9Vhl z>6${VyJabnbb!$DABsHTCXr_kC~|HGTU`k^r5rm?pEC?vCW8 zOfxXr%}z6A>N)m@VJkbHM9d<)2taGr`Wwume#bn!wIBujT8&; zMWM{%?;Wj(1)UjP@y*iAcM(sps#~(dh}`0fpI?&peYk%-TI2q|@whw}dBep@$0xlu z(x>sJZWQ(lXGUnHFxdqVSCq#8fEC@hy7U&{$>J1U#QYzi6g0GIh4&XF)+o_m}G z7RGusxoN}w4I+~@-8`*JypRX*dpiG=HZw%|+v+7cv3Y-ay#hc`F$YgD`4HpYc6XAY zqQY^C-0t$pV!?nvJWlAR;E)yF@*y14`(GgKU}ZLLX5=K?!;F$GHBz1Y_-ETw-jPnsw| zKNtjPc9;J0I1@{rm!RVH?X-Apfv0aex4}_tCBfCM12HrkE^|x!H#<2h=qJ<2T};@G z3^0Qoy3~&;JSzix(xFe9hxTQ1Ob!jtOm9Ed_)PT0=8q3d0wZ&pu9T%Li!cRE!(n2&=V|7)fH!1NQ|`21gifEE6mLzyUHew$!FF*2gY3 zw@E2>Vkr!8PfNV%Deg#gg)3G%J*y!zPh`1wEXY;l(dZ)pnWCy=qlwuMPx6uG?=UTV(hvhBmomEN7KUb}Iyb-E zd{Or?t=CR^U)3eN!}_y54yn&&f=yx>t8_%%ON)!Q!k%;j2&NcJ=sv%Cxf^xn_QSSl zVc~Xfxwljn`JVuN!(@U8rRxY}ys5t^Y8P8hBFEYA*}^@uy>Ab&L12GM5nij?Z&zkXIqJ~!FJ?W?LI>B zbg^qX0}e_&SvU9JXLOhdUOCI3fCM|pHqKQXgZdaCe9Os^+fecOF28JrzF28--1&Mvjp`Y;RbuN10{V#U>jAh4wB;hwVlFHlJ^zt+ z`5)$MTSu^ApCd}{*0tHLbVpH~(m zysg&bZ=5D`iny5|*m0W@ONq46KO`!y0d~!i@#kWPY|kAgi%2gz>Xl9Er#c1haqjpdSuD#1MZr38N&>wyO=aUq~pAeL_SaZ9G2$6zJOT{4_0s(E-yUT#9Z^ zjDogw9XH1nc@QEq5KAOsmap;}yf51QCpS*3twDPiF7H`6_0XGJTSk+&=Q858hsnX8 zowJKGDKfbaXrfMw-smeyOn%ycQJOYKS*Q=xK4+(RFgua2oj1*%@Kbee6varamqdPJ zhH|@FT^InTe_zLSe_$Ep{Me3cLuKiu+Huqzgz6mz?jx1;ChN<>XVdS=fv7t2T<)LL zA>X!JFSi}`4W!u8Wibsx#@PB3Iim)RxZ8XyV_-;6K8AsfxE9uiQwr=ep4bNGKa0Vw z3Mk|^O?4H7qn!CqF*oe_5DE6rKmLv{WmZOQDqj0BBeOy94R+5-cV!TMn7;jpH>Jw!RiI7;R8q6aWTXMzLDLujk3k?TO{A_I-BR zZQ8g2NavknfmSq8l0BmC;NdNl0`>uNDlvk0FL>v87&uP7?5q3wjpEHc!4h^)ao$!O zYIKG9`Ikybah0~h{v~a#TQ*@2E6<))#EuV^xe&f&;br&gP<@tj`OZ7BF=K@mawgaa zefq_3ZY{6~ZR5ZpNn`uf)C_CT_YIbqYN-ps_gT+!_2RmsgGQh39;#PH%C`&xVQP72 zT>S8sM5$Hynm|Ka3vib2vvY+*!3J2}1@+S**xZ;6Zg$2iA>OUjU4>98HCnbg#rf%T5E1MG+O9gi7xi@munTE9sE6tB+_ zfHTAhf8u2P^)9*z`;t~=u=<2iHZw*%TB^a{bgBAE<%+*~&h`aROQI$u!qMu{ybD>zCPdyBg`;3RIwbU4K zy!l5~Qhnd4)~G9Sc(Apg%)r9l^h~fMn&dOEJBZq`)l~dZ zM&O(Wgr_zGJYk$&YtE5hjFuBYQ5bgWQLSmb_DD>zPt}_41^*ja`)1R`{57bs@ct;r zw+7glvz|riui@Nzal@B;>aAwY?PEu7xA;diym!>n+;cO=)S+fOR@G-pu0HlBLF}I$ z2hx;?2EP+|{ECDDAAiRdfG6Nw1MF887v+N||>~Aw4+3<5c(K2Lz z{;L9knG|X+FL@B;BkW^k&m8|~0hm+G9ES29+0>S%{uozWmYZ%0s%{zShU0+1;8U&H zT}9duWJJ;JJN-5iKoW7VM{vwfQ@VQC+{%d%1W{A#{+Jpdb%8LWm_BU4$&UEF=<~83 zDSs=udx@Qlf9e+q^I+fh4JUSVJP)Z?^oN${^IQP`3a9=&}|A=)(1G%B$RLZS1>^KmDl-fJ!r2HR2q~NJ9OL?l(9-j#0ggK`CdH z;y?Bg{wa=*g}oIl=aU5biZRYW+Fa-P%hA7+)_@VhlSko%gF&M||6rhikhod|aTkQ8 zXSUXMd(->dm-*owMd%CX8%VNNz>}0n7>#6e&)?m5S&>Q690OSy@$DZ|sv&*AXqg6% zyE5PWa!RBO?U$ZTOlz7s#1Yi?!&`oL#HaIr0BruKjCX)7@};I)wLy4ieF&7e_<)P~~(f21+rgHPDrR zy#R~f(cM~yfjq0#58Jza50!@tD2#M4LhNt~3u<<|U^iqstHP;qOx~`k1oumx4eo8e z#o?H2taOo#fn`KDz#d*wtK$Ek)WZLXUmHSEqbf~1-;r3+r3Z>Xk32p7sb|NKR@ti8 z1El=ya0rFe^GW;Ua9YVXzDMSrp8__}S9Wfdfe>LIz2SrYlYm}kwIWqpQWucm#W~oH zTvK&3N!j{VKh(A(b&bTS$0-AzI|rFdoD5ut*##UVISo8rR&R=>YkjPWB(al)270R3 zn3B>l&rm&))O3i*k)7<#4cmi%dQrH>#r3~aucI8L(O+wvoNa1g4s=Cpdop9WIBBX6|YKMkJm0<(Wvz7_g*dds!a1@U>Y5vMTE zhOnWaAk%p(QNWt>GcgP#R@zqtxUg}|7OW7OUS1*p)r*^rr#1hq0c3v!WZ z%Or%?0+{tMc3S)2d9kP+Qwv2(jQCh`{qpFAj}nuZE+`rw|s9L zEcCvxh9$)zc>5FY?Q6e<9({E3W6&RU6rkphq&+Q~JuhtaAQP7{Tq;PNV(pcPIZJr^ zmP{spv!!(5`n?9dmv(Hm_U?pHCj@0+%dn@L$qle*H?XMS^U>I0@F9dLtYBx z)w*+kP5ie4ate@nYj>bw`Q&eR^;IUS1@W)%<{DESr%A4kR`)Gu&_~1>jQuFD4Hb@Xj0b{OT%$uB^=`nb}hq<{gkT=*o}-!Yn{{ah!_3@t+*m zlSjT|#K@f3l@DB6EWh#2CJkS;s*k{aUNo8KcZERXIigsd_?kYM|Lg=nmbTtB?tQmF zR6_OQKU+1cM3R%T*(n1e=tWgp_EiV)C{Yar=!}qDbrKkG!&D&J9V@qrExL+!?*WE$ zJ@{%a0M1bvV8iH^Mw`g7~YDsH8HmZrXYvx=>Yn9J*93LvgQ&#%*68at!oB)N6u9K?_7uX|i(>PHb%)Ib` zON9kqbJwiB#u-m=3cKs%v$Ti>a z2R|H6NS$>%YcYowvCYEs)j3s|=JN-uUKRuAw-8uO%A@gzt5zCMkRiR}XA)~fRls+Z zA^t+`UUw*^BW|dDR-TgKqb2SK4LS4OYjFSA99lf0n08BWJ$e zuBut__G3;gkhQP<0y3lm4wI)}4MXNc+g1tr6b9ZHsLlD-E=cBUi`bYL!Bv4Q=#f;; zQV)0F73Di+$Ov_O7fda%xsZ|7l2_ihTedVG)Yd#zdTQX4@`!hSjj*$ zDv8Cq1AhA6Bs&#cY1!G=uL~;Eo<&FYCKd>fYz};8Tno>1vT^olP#f+htc}98tRHHR zrL2}GN@Z*H%8!HW6;Q%4eG=3XO)og+3-`M4-ei{o0*59B70# z@8&-T!cknB)4g-HaMoe466Fe-%jMgTGxywN&`-G3ksl#R${FOg6mjmMJPOa2NWgpq z6gK<_O`P;(5dUYcfv5gadTkC;a^AT5&mf4*%H4cMhD=o7`#uv(nDP?$yd5gKTWUws-v0PSpigCsR7Gugo_G6Ipr`fYx0b_CYWPi39h9x|T5tuD zCXQDs3k{wgq=T*ZP>AU1oRH9p-4xemSBDQC$m29L?&# zP+^RU8VNQ}3l2Cl?=`Ds1y_;fA%plBJ-V1{M#FbTX$QZup;q>jTbQ62vVT`Trn=I* zozYlt17*xd`l8oaSXf?*i%w4yD`A=jnA0ItmP%9X5C- zg|zhdrYEVidGF`ZNFztS98MA_R+s2{B|yiE9aeq z*CY^ElLON#;eNdV7S6ql{nyhz5r4PC&1=c*MQhmUgpD-+KESz|-#?vOz9VV-`r7p> z;1!w3PaQI%zm63EmCQ%fkPv2kT0PjSt$qo|j>|zy=d*HxMs}>zB&eSx&cqf@+eg~< zN{MrvpIc~>IlLTwV$!CkXj6Hp5O-emi5$3KEDBmkA)a2=(Q9SrjZb|GOkVC)zjd5MWD-*WH$=R{0iqZSb~#h+v5XPN?-nZ zgP!M6M9%L;3as8Y(04WsdMoZ8bks&_!|9R`vQz0C)j(#Cv=@b>rFD*K8&KlE(ER4PQh-&R#-7Gve7d|H(?Vh1*i;8$kITCQ^c$gj~^LE|KrZQtmWhbE=9 zGO&jOK)QWsET_2|EscC}v{6#a@(|HDLd*3K(7O7zDargwE(aFOG5*}@<-9Jo_ZxdO z;>z3`_u?|mcW|SI9o2Coc8@|+sEfC?K;1nEr}stRusa|YgrMe@M~~VHi)ohLhj?y~ zw^O;Q?71=q<6*enl1#8?K^|Gbo!+gXCTG|hl9EELS&x))F>{6?yhS?xbi{~Dx*edEgLlyoDp+~-o1Q8ybmvN;%w2}nv^*Z zmvJVY9ojHcbAd7fVzHH%lSvQ6A#WZdoLgNP;5+K5_vH&8q#2C9+6rP}Fk73*QRve$ zbGc>J`CWm)id_VapD>Vj-}RJuiBV50!n?=vV%>%>F1J>fa!3)QmN=QR%vd4eh+LU> zL6<51A`^$eJiiRxNx20|x7tm~#Rz0>d+a2at}9n1waQ%&VHDtar5B9QZtWDFU-ex4 zJ{&7(7bYdV0NGag*+Ob)Z` zj2`tQCJcE7Hlyn*<^!+g1+_IaSn~Q-xoZdOy$FzE za4iVU8Jwd(9ih*1>Nl9Eaf&p3rVaUER={B7`_uBMZO~GSKEPF-YOnf`&tXd_ zf-ynIQ`CjgXtT6e(ahC+<{(Cs@TXqX;F4;)2l>GiwewP#kh3gV2x&fVV}S+#)+(R4 zl5Rovj!EOejw9AV7o_vR;WYP-M|y#7?amiM?*UO7xy$6l+TJxoSV`=WF%@~tfX=XR zTb3j{U6ym=!dayne^8fzOg-f}gVsqtn14T=kL2wdD3&|9>?6!ViJA(e>#Q02^k^x%-1H_T3%D#-MxAjO9fD_7++eyqpO2vugXd&fjQ zWw|s+fnXsv*^tt+Hwnw#YNJ0`hKdhg2|hQd^eKjKaL@`6n0gTDNkJGJ3hC{ zInjnqweh{xOC>d_EQMuLp>HVq5;oUR z($%4r6FcGR{nGi4d#Cjw|5g~}@E9rGF?nEu?Ohx{x#m7sgJ16OOdWcYsV}zsJfgsy zbJ%J?HQ$m@=Ep)e;7knh2EpG*daop?wwypo*S1oLGARenIhQxuJ-n5j41b7m^*r;l z9pttVnD#~t~?q{2a}Gt(!hf`2f}9ehnt(=AuX z``ppyD|3Mrve)f>xvEmnDexDNt6dc+X&8A#_zaqajD5 zD(z)i-q6T`T12X%UC?%{_n@X$L@Q* z_Et2gM3Sfv?sB$jxYvYiRB_^~n6-|jfzQ1@-q0)_+K&3b+0MPpqDXWA$%q=P$=yng zYYiuHSB43X>J~{mtHi>gD#I3}BRGRGpx1XIH(XLH{;75?deypabter>S}8k7Tc9v* z2386pV+Cngzg%>cmK({bC$Ky1(ITl)momugrFSeKtDIvgvs07y|46l6smOG&SXirh z@q+(#4`l%zh%sLh?i#2OLsq!uuiMmJ(w0gBtMF5Gxeyf=u)p})%mj8)%!IDzT8&|7 z4tvng*-3dj?rGnQzd?u#vUqTVo)*tp>IGa@+28iV(9hW*Xi~T#e5wAIZ$`l)af3=w^)}o*B`{2X4#9rp6;PRPmJLg7r_{__cB#fN&YC zPH?=5pTD?VHYYgN4eY@Wp;SF-Kr(C*6^w&I)V9X@-kSFAktpe>s2=mvz$~eU7Ndqe zDqeQ!RVE^lk`b}GvRbCjgWJ-AFd144zvoD+x9Kc;Lh7z;G&w5mP>pLglgu4g);Gmr623g<~PFa zO>YL+3DL@TPr7WCxOR`T(Nm8~;|7SH`f}zvM5k{keL;oJv1=3+m)caKuYrU?ko^yq z7GhzyK0+xjm2SR!K=cS9Yj3D~6?|hh0UwwM{RzeaUsv|}q#xAm4)=iLR?br+J9#A5Ef$%V9ju zj8S5{y$I~Aa$Phbt?ZrES7B6YXxMJ&77=o;g5gEWPP=P0)TuO-smjM+r>~QM zLtuqSbMi8rqJZtCjZYvE61kHm<*g=H|DxAQY<|ae#msVwPXdC(Pb=NPcycjSMyY(z zE_~S07_z>=nMrnHq8FXF1a8d}3*tK~qOdzJAd!uQs7YO>)8%4IJVfeFW)_l@Y~p>{-H1o zBi!WtZcuz7Yx@rOZU?L_wO+Fr`N=`WGHJgkz;a?+V151ApMqgEz0Wy}!+2h5dKBS& z*tQd9)ciJo1?})6FJ3JTCoUsfg)7*4H3*9rn6H{xVxp(9=RTxBaX} zo?aHI$L_6$#JY6|$-bKmg*`;_aZ>kKEM>B+^}`)4m*;QiL~R`b3N#XUXF_1=Yh~bz#k6@Jw1A4J=#7I=cEWm)VjVnjI;(o!?;5 zi;vVis*3d;mjgn27pC+_zs>3Y#W#T6SwOAMWe&bZW-?svp_m>h0P(&=w^~`tWjN1* zo;}bmsHbEaD0y5moaaG7j-{L9d@ic8Y9M^dU2DH&x0w9;4jH>>09#Za8t0ewp$viv zk7c0}O1vbG*7<}}Euny;0-fX>`hRC?y!FYp&vo|t1`Vj}8ww_CF68+)(;xxMf0DiB~@5bayISVOO{5}SAQ0LD1 zPBAkmj!|o#xz3yr@(qX@nsUTa1D$#fX&DIFpN}h2IMPWiX|LKw)vIYzt+PVRWVWC7H?T! z{HpeVJi%=Zx|Au5_Uiuu@qPpW(Y}qQB-OvT2N(Vi9bl*E(u0%TQm(Zn73{Aq@ES-Q zJ<|x|Fgle>IPA!0AaGo(tHgUfdI6qUdr)BixzwA>TZo)2t=%!we5Fvqq)q9~Aqv)U zzQds76z#%-R2(GA8?D{%?}&xwkvMz2B+p%Dm3DWYg|x?VxYh(~SIL_&E{}em#d|H> zC!JcQrZ_ZC9?R{R5ot342~>Ssq#)(Z8nSR~ldCj`+aI^6nkBM?lNBRYfs z-%x}pQHx{QYg#40wqM?-JA%n6uH|qwPaZ3%KN5G6X3B@BzXSH|crtrVzL~?Qqsmfs zNLmZJk-of8eb6}Y*>clyV=Kmvb0&`tG?I#2oBr6yM^!)bP2~^kVm{Y%IVLkZskb9L z*pouwQyqCOH^ouigme~5Fy3XwUgrvu5iR**nwc>$g z#>@gc*`cawM!uJ0t4fTVIr73mmo{Mq#>@qky*JJ0cY0WplX>YpPNetF9b#}knkh7^ z)*RGh*sc0{u`){99ZpG84RRRQNp!1MNUK%v=Q^D0dR$H;bG}peGYmCN3h9k!W;dQQ zyd7}ZDu0;Xz&WuxT(`TfBCJ~%Gj!AiKpLNgh5Hyk%nTx!=pqUfoSn%9bm2mAJI|)# z5>7q$z`X}&b@s7UbKk1B8I#3&G0fjzg18-e;^O?EWktegMz|`(U{S2)w(oobS6TpQ zu4N1)P8Wd9BD8`>l8bMH=o_mn-f=|}H0Y{vK=gF5`}pt3ku|k~+de{7FH23mT<$+Y zlqhj$FX7xA$=7nlaJ9!mMKABFZd#6f9ban?V{XusU*{@$e6@RFrqKdO;?NLN3lQvQ zYu0sk2HJp?oH2;2(*ZP*O%xCwOCDuDS7 z+V5|qJqCtLdFYw{zu3sEA}|aT!?s@lkQKP7E(7?J%jTKMZx7*}3NVoQ6T~f7HwAF| zHQ+0WLTFi+kvBF*@%r{=)057GF)|J}tz)L7lt$q@VfQUEyj&{L6< zIFhQC=zqpRobuP&sOEBPrqA@L_N5*)x(Fs zzcYqH$`ifQ8UDHp5V*vhc}m>+JpuZMJI5W0`IxckudQ6y#{4i%+B9CNkT{3i1v+%B zzdpahZheR7P#1c%eEQuz)Rrs?G|zq}6Y)=5V_J0`K+NvWbpBW&j5}Vj)Nok2MnRzq5-eS!0 z8GklW=n{mZ_eIqoK`@;3l5k6-M(n(RP*n}et$e&%2B`Kdd(MY{+MDQ%|CEp}O;GtP z=R-2pAs#4vG+N9=teo!dNFZ4B29zh565oApF-EO%FxV!-#1|@d+A*qX0xk+>jqlc# zM)N7nVU^Ul|QaGW||Mm zc)>&&{`tl=)Dj2)QRbJK!4+eeksdWBK(amoVV*qfOq;ZbV2^&vtqTEr&egE7f|EK$&;@TRWNgYa?fSy<4&em*8Y`c0G|0EAth$FG3~C zM*gzH$ds)^mrL5pa+3hyOn^7z9j_x!n;r*wc=`v2ujR3_L=Cb~qm|4$@g9=ze_=?6 zCb=&lIF9vM4<8CC(7bQ8IsqnTZ85Vzagc*y^&5i=t^(L!s7vslITet4^z^C3{&Kgp zf@77-)=;gtXNbe|=KDww?N0i?=*4FRk2F=JE;g3ZD<=BGE zptHVj5;!aMq+6vX@UdWnTI{8{>tVi@4ku{dCuTBu)(yHv*u@K|NA>jM7`>e0S4b$3 zlf^?aJW~f(?^YnYXB6zJPd_?rYURbe09mc{J64iWB>!N%C#6;pC|0X22l{$v=skPH zu&a~2_{n)IhR>OW9;+a`R}#r9WO|{U{IG9BkTSPJOeDEkr&%rKFPk8s_Q>bjW_CRb z5L5Ml{$?w$$eiD%W7Y-5(?PZp(+w7uH>}r=Nczk2z3v0~0TZ(%nrwzCT&7l8RHBIr zigu84k+K(XkztoSgsd*WZySHVF%y%FPcvb4BHeu8Sl6n#p`xn;K2!m!1D?${>N%%5 ztxWnuagDhRen3raaH9q!h&x?PI#(vUC2NCGRz~0II{vk|PJA^4A8BWYo|e4*mn&-o za5T-pV$3dgzl&nyP^-`I7Qm}AtXC6)NRlWoYqH|gt#V(!uuB*x$YTV?b$!xx7QU~f0*Rz}hLHfuuHUP|z;fW`W^u6I+EjhJPNZ*-gGQ)JcJQ_*Dptzk^ z0h0w*wqnt`l&gMzq%F_m>G}>BhF7(*>hrjKFvLAwZFu|odUIs2*ZDs$#%w>(HHvAU zFMqMXKSb8=f|%}h^!>KdvlO@Qk`nG4?!%Ks;r)+nkrS((;w4TaPE5K`>DI=S2pY9} zD(*k>D~t2;tSz4C@a8ND%Z^ra@;fg}c`Pw$X@v+Z=aSs2!MEP<%A6GPB+AXwCUUWa zH9IlrmIWrl&))5291rxX2wM)stMGZTYQAPrQC1!u#YVA#NL2(Bgn*RL1JYEQel661ih|ULNH3uXsB|fzhkz7m34{_L zgx?}0@QU}&{pX#z_m0juvpmmcchA|g=bSzJIs1s64cC6qWyMK~#{1Q^H5C4Mb)9`h z|2nF==1LU{{W?p#fj>BA0_hE;=zO12IMcfl+`P8ffZDp;<1SG%2O=k}PmdIwX9PQ= z7)dtPwxkL*)ZFdxd#AC9VOfv!*NHB51eRDecmCS%>HY1DnA!Ta>>!aAl3G3|XN&L( ztee9dr_3g9CR=LRgjCigoJ+>dJAFM#SGRIiEH@~n4Nr1^6BZsLHsDOQjIzKIr8@gh zQ5+lwVUGPzmC8+JemIZ4bHk7DkxlW_&l&?&SDuRsioLjk!Iqd-|LQ@rCEFKgxM$i3 zEWESmKvZiVV_KUyVLcyQL^9cD0)6?&(p}LZ*l4Mr-Ebu+uU%t-)vwNueYjzDuRNy0 zK#ttoRk0~%y>3ov)Aj+s=B2h2+d3OpMR+H$vB&nWGmBjD_n$_lJUg<{)Hv`7Y>;tRHfsCS(E$(D3eR+y9ZdH*<5lP9lJT|@ z<^=E|Pv%D|6n6$VJiAt%OX_Qak2eH?TxvG}o<)7ndpQanzAeDliHR<(Zr?Q8b^GA! z0lX;>_C`06O{0dcKHGk-o9uC|&+2b_?2W-3bZn5eItRd;>)`&|6x;w4hWeC#%WR_s z!Bv+P!|5}`&rPqT>3i>3Zc|7t0($tZ(jJ3 znXw^%;6_#uq-Mr@Zq%mzZ`ChTkyrbh@T9E@PflF<#xRe9k=snsORH>ZVSPSJt$~8k z8)Fz)hZLSpRdoR(%^JfYN~49RyF@ME*o(~8mRyykOux_U z>U^U2pCx<78*|5S;{ss$l?gMcP0zjno*(0-G)Nf07|@!{2KvHqmqr zAbTL6ei4Kzv{0(|MS<#Z9nh4slvPZDNo;C?>@-~jG~G-Qpy*vdov#AmxhQ$lvmsYN z30(wjOE@_EJ{4Q<(GF}4o%v)XPg1%gH%&Xf7l=`~+7&v=D1DZ}RKUFrevTwqMyM zayY=6sJTNK?WTFPKM&d#k+9ofp+>1KAl)uu=*&iUr5W%%+cz6{zlRiB8_LZWzHPa}m^T!|vGs7p@!? z0W42;k>c4Toc&;UQ7l`VrlOGmlV9+qvToD6JS{-FZA;O{PM-D*Hc>{RQ7Qu3j>ya7-SjSZmGsbP?v4EfMKb1q#mUwb zO5U(SrQU$!b7P0O{!;re*p|h-EmGm%Xx#S>*q4dMgt2c#S}2Xj9R^xH$}7owV}iz3 zcX3F~kiT%{;|sv@_nl>Cn>h6dEI5l}lm<63C+`4gdndR21`CDzackEB9QRgz|CidrXMnD}`XVA|Q{zwXgDJk#JavNH&fZ_Go>9ORL4oH!tQ{8D+;)8UiY<%<6xylKMX27OtSeu%^G3U36 zQ-ctw({FI3$tcrmwx`)&UcAlqX^@4NW7Ax$QI`jttFdFe zLK}Kcqf{KslHe|qV9nF>y|->%iDKK+jYwyDS6reLfkTO-Aw{$s>td~BxN79zhVI&A zog!_|G%;O?t2x zOy?y8!S?IbT}%7C6c@Zc;;h?1Z{!_-N_e9xHawd9p6@drcitFZpI$zgl5A1fUXZZ= z^LUnbG{2{~FI>N*%DrNRk?TA+r<5kV_l^3)p}QT4%Sw(S#Sgd-r!J<0Yo@H@XuE9q z2BI8ST96*$BM+P`2M-zP%^EtjRLC;lgz?$&k$hes*fg!bHGv%v_nM;3^AJrFw}VvQ zEfKHM;r#1?<;%nRrw#Up-5VR)R`4{@r+|e&MK3_|&`+$a(gTvuD^ku)t7*OKG4$_W zCfLi$rai50%E$AGis4d`&TY!bBl;4_X((-*uBr*8=gDbt0)&*&;i>;(_f9Vy`X-je z6d|5UqZpjrVQ%}vqGQQ@%w^!v9?lmgy}a+FIlY^jJ}+E<^T2?scJw`GpefY3+D%rFWn6FQ(jF zczc1*T{lK2Xb(e+X5JZ6MtI4%lz86>ZBoB{% z+2cj*MRj^g$6UCU@!__Cgbg~;Y=XI1XV!!8t7DIvv@<0B{WH#?u{(>z6r=1k&$pot zkHSpr-&yM{{CdAVBdE2F=yDq%hAGP9cgb}%PHi<4b!5YTx)SeG?T@_2EU$}J(-|YR zf5iX%p>upZDD*pO$aw*JgtIyST|JSNwJBo1=v~`_=+T9n?AP&+S?}c%KR`u~UOwHk za*xm~`$Br33*A&@to7WFG5549mpZ)#cpfa9ZGE#Dg})kk0KzFPh3QOHYAgLY27B;Ro^Xkln-JC!o-8k?D^{elaMUNA zZ8OVlY1Tb9K1%vu`*DwyIMXDnyfgY(SY_{gJ1b^umJsTIH5xgpjbjINgmhN;yG#kvP=jOO2l zN&fhdYc=9j$9;Tgp*7+Wl$}|`2_8v+hfO4) zEZokKPI+?1CXcbeuy^?%gA}xv3};TC9YNotUUc`OUtpWkuX%XyKLL_u(I-vy5Z=`H z)s87zFqrd^C`=W|RX90T!uz%X<(^uXN^*a9=@QRaUM;F*7B!sO{9$5@di2`#;*FuW zlsBleGrIZhuN4-5UJ2!wyPlMynsj+ZAGPDSG6F6WG}O`SLW!0i}!ees1ROn>tcgTl-UgXbdE1kriAd<`#k!!g^g%U`@t zh)I7*++LmWDD)*X5D7ibcHYY6XiKc=E3rHCJB&l}dP_!T=zc1FT4z=5--vkci77pKdx{diIccBGQr}Eht5Qp#+*DKh!j0AxnheG zM-KOcgcyNOx{k1wt9(#+i-n`pgR1V7#*cmlIf#U!^Y?A)&K}1eG4o*DZIcHrPg&ZS+sAJa4nY%DL_~9fINXgrjOsicn5u~MM z4y_x5UeIz=$GFLFT#IHc(9UNi596#~olqx!Rs-Qd-UOP@eYaVQ=jLW@W8sz6=|pF{ z0Qi?E`f^a%rmIO=iiO+hgrSAS1r6snz8pMH)5S@ zHb$6k)%)X!(A*@HI3eJMVTFmRg-%7i#9R1@ZMB6vNG6O;Nf7PEM5FYXxz}O9XIUOM ztmZ8m%j(X?p=x86k>Sme9m+5Edbk9{sUvRJ+s2zW5SMSmb313kRZ%F#rdTUd#*=F? zBwzP;PCtMm5?nOie|9+ye?7kCE4Sb!`yt3fH;;wadPh562LlhvpzgMGmwk+w+_gBz zcb`r6Or==g8E8bW;Fjw(H`Mi-`hYh5FX>56^GW-pf8d9 zysitU^VYc4@eL>CYt|%Nm5QZ26Onr-iZoOfk{j#B_?^L8DodPN`ndTjX`p5vzT~;xTnPSK&Y9Rs!rk3mB>< zHZ8n7uo&gNS7CTr+qTUtm9ZSToc{L73){EVLPsWU1h`vQo~F|_Nxk^XG4*8jlOvJ8 zqS>%4ZLccyuNT$T>}kx5{m~Qp68RrngHX~l^$FcORozESGaeO52>zH;9sUWw%vAiJ zfw&24OM(Rgkpst@g3D0%VmrQ$&|(mbx$<>9Ne#ONu5=RTQ{4mJPM6r9i;=f$j+zN* zCB5{u);}i45b@cfQ`al+XXJxd$>|TyTu6NnG1rvhck7cZo^N9B>|pQHp+vsbaHn8)l-c^TB~@0XJuxpVki| z5DYHO@(hSg!LPMFk1rn(qo_?g3nKWr72-My zbRE47GsKs|Ms8mNKA-N%*=Xl$h3=VMyU_1(DE|z`7l&?;u>f7%%O4DaFD+3M8HKm>XWTO9G?jjLnv;!RE9sAgT6|Nf0*S$bH1 zIm?;i5*LX7>?#QK{88=gcv^F$y()m|=I5Krb3#o4k7m9c%2Y)({#}+)Y?YhbI zr(OcgzXF1f@)kyJ8wdYXG%El2Kwya?Xt&>B3ts+G!fh|(eD zof#|GwA#%0Uf!fKp56fAPQ{Jw%Z9Vq_b=SJ5#-FhHBF>?b0O?7qEn^PIgc3SeY}W$Ft6~OlN6`ob|r{S;K%Yj z8Y`s}ApyTATZLTcuMF-i_Q(aJaOtv&v_}_VOO_@JCyJqC^yTP6k#CNhLTal{&Xr&g zQn&uKYhWX)iaWjv*S4%o#&_n}#(c7!2CU0HucB5^UwPo z_Z~lfEk@4vO0oN_k#~f0byO^FzSMWyF^tQvAMcGb#HY4jYPU_hBng2=;nXj_Ix4Y! zG}mJ?y(I1j_=ZTc<>Z4uLyKlyK=Y(JJ#^Ttd2|7~6+)cOvFjOSU>QK9$zrgWilCRO z9xj?3_fPij6uI!Vx>{58j$yX-OY@5(wNWx-;Qxcb$f1TIHO`||$V;X9-plUQs9KjF z&z?OC6Ay!9kHh4;gkr4TYsKj0I}YnT+joXv%)2hD4po10kC>Kt zhH1tug=V^ybVPR&4p^8?%421AqcV&gYqvG?4LGLaP(>BBvgX!m5&JdSG*;Np-ydFCpjW4erst%P zcg@`G3vnnFR7h(`Q|(^!J8|YG9}MvB+}Teka3iG;MJ)u-$n<`HDW-g1%M8o%0^a2q zqi9)fb~S-F{#WHtU5r5Sv6Zfn%62`3$#S6S*^iUq@@F@p238Hr(hSW#NB<*hxf$*Re90)PjR%)$V2|zjw;UvrVnfaGoZ6{?;6f?r=kabIS&SKj* zOQK;Rx%sshZeLAcJO$wtjo0A_2T|4-uV*(!3+rF-QqBWca$D}hh zUK+XEYt<_N5Zs*f(e_f_Ppu!CWOcTy)VPWC&MjzH-OGuR^UYwKjg4T0*6sd2gcM;@ z8$ib^ypWrX(rEUNtE%PYsg8g6xWe>m3?p0JaBPHIl7X$Y-jb+1F%+$C&aX~%_7-=L zvZb-g+DQP)^R|o(_oWe=lNOwD(ZdCMNPEEDnC1ADJ*4Q8$USvMMSwpNiKs+Dd<~nW zETY4@GtEVAawvkO-!xH2v{Bx%HO*Dt+{G@cE~nw!(uta+|7k_YdG;H}QfA!XjO0MM zDQ8HOZmoZY=zZC}$$%xJEreVB>E)(b@afUkR8Id~(Q`7XQd)!<*Fgm1r8?!h6pW$q zR0UdDAjxqIO-Oapa=lw+mLuUJLX=H))snh<(rVcH$Cm*uep0l0%xf>=OONXh(>a!aY5UXsLSIccKb%WoZVP_v+t;!YbKe zSf|*b64=TzYRBi@M{hJvNpKED$=s>SsRqOXbMzpj+5fTVrIL=93dB%YTxN1z+G|Y9i%V`$h+Kr^PGm)? z*UP}_UUk$vM$}!nErY0aE3^!Y%#4waQH;nFsy96*bpp}xwxg&ENUZ2=`j7!}KJue0 zy2LAtYfO|V>zk!G-${hXY}fi=>rGuoTW(q7fLFsK;meNR>XD|RQikWM(P78?W2dJH`P(lsAr8(242Cf_yP;i>9Cupz}TvcScB>Yi8++&kGG!&@a^(i(+) zoa^P%Yg121*M0MF|20|CP><+mSygFsx!J;yLe{W*AXr8Q?YaP>F&SNpA zEayCd65La#YAG0HqU3kas?SERHQFS`lu2r~`v_6C48i!O&f=tJmPJm!oovIUo~lyM z`dR_JAm>?S{ZlcDc0*5j;~7)x2qE#j5eu=5-f(bCJ&k4}vu)(fsGG7@!RCnYy=g#QXc%$>o2iPK?+c+2csN^>cI{qQc4C^;* zc#?r>V8Q#oSk3fvGdCP>NCG7 zd}i+m{5#9Qi!_!oqaQy?Rlh=7E}3N*0=;_d)c;f}wBrEtZBw0bW%as@wauoF0FZ=< z#xvHNj)2G>b~mU!cJ{u>Ca8}OGhl^;nS&Um0m^pE$LBPm=IEwoN~1yDwsGc!zd$tp zOws^9V+X95#W8BEVU)?^``x@xDro8d{z9USU??^1eSm+miP5{lKpCV@9iY;-P51kj za0_tP0ZZlI2e@qn2>@CIoQ!M5@x}jT zm0#a&8VvSai^K-QrCyY_SD>fa%rIEp;%SR5Y~4>g3a%!feg*SKhTeU-k1~RrqEC+# zLtjaci+gjIK^6$ZuH#v7q`0B8UBn-3_!61HAYS)j;Y0nRW*2LO7lB> zEpsgHcBXKJHc{K`HU_eTs=5ccGKVh|SW1OA%hh_gD;L?<_*}{$x&RBaJjswcjCpbR69L4B4^B1Pe-ZqNa4@ z>&A6XkW^*u0lq9qP(~~t=UIED@+IDgj0M<`eBpczMWQ%O--)<+K4x&Q$j=FBN>dua zbU@g4H!K$~J^Pa;7#*1jEXr8d3XQjcyksc4s#% zy-VjES{#XKp5u;FSb{+&9#GdLYxZCZe{@$ltU9g8c4d5A9E*cD^pp&qgv|wqVji7h z6HIY2-6V%~G~de6kJ`kkBp#ys=e2TsZw+IQBaY3VC69ldQvNaL)wbUdQ%Km#pwsfAH1USm1f+9fw&DrV%=j4y#tWu z);agc;zj#uXQV5EZ(AQ9>_H(MX&}y5x$_SRwB7v(Tn88=pkgzOz~$D7l^1i8YaBmg zb{{NE%ybs41`8qN#xuiWKJ9Bc@dp(gBm036o3p{j)8Hk}h2Ay3_Dt8R)sl2&MajI@ zsHfp%h6PJ01eTVgVA8`|LYIwx87t_~sGwR?Zulp*&F5MH0z>*OY=Y4$T6V1?D}g&Oby^o@8!t zoMeH;+y5L;-Zkh0jn!1E&JRH9?I&}9%D02&TLoIdII}A^vVe#sm=J6X{+tWi=^cm4 z(dX%reO1K>TFlm*4o*7+&)l-2xX4;U(_EKAA5# zmsu;0i-l#x7Al&56abbQK%#oW{!aw>7N}OW~t#Qh_~`je;5%$rtpC-{E$ z65Yq*lU?2?AU$|bfms!G=Bh(~XpYjKbo8n;1^g{~;eHvUbcq8Jlb`LN4hFY&mO)}o z3CauEA85!+$k&qb(ote4OHY{ICNFoe6u$waCJ*QLKTaQZTvB z>NKXtCo&@*F8^4K5q9v6oi@3quPE~+U~{D$S$%3ybIifP^eo5ppU1qHBUhj_wYSkW z*LD_fSLotFSK$!mUFemHjyi4Sk9@8xe~?n^Ii08=>1^zYQyru8^sHVUbxl}^mR(#Y zMG>wG*&Nf1l65{hqtB$w4uQ){Q%z2YtC3}Zbrq6&6e+D0YwRyan^2DnS08Vv#(Ngh zHST63za;bd^*tItT0{kH=@ezW0NO^++$bsGRLgaoln(6lNl6K$q^Z)GUX%#sY z-77V_MTNLCvT*)jo9;PLB9k1(06QoGF`*EW$OIs{p?53%3mq4{uks~Gkl&DdDD`A! z;rq$9w7ig!i*_wXd!Hm}lf}4E&bKNEdFE6gtFLBphAng1@}F9-`JfaE=aPX6HPj_2 z+d1GVV>@mv9D~c{`)PCvlPG`I>ksh-7tYY+`xo`_g9{JzA5Br#*8|S4YQ)e!n!fH= zaCgen_4z-~{8Ny4Rvm+Vr~hn$@-kXfm}q-bv*i?d&}827`1#vh+%b)BzX`T>eLvB`d-*U@^2}W z+NrH;%cEBIGxvPD~82q%6cF#X^#~AvH@= zj!uST@*N;|$a4jZ{y-#x;#H8x%5eOY2B9lN?E_`6@mdl5cxdLN$e%M!O>>HY0Txs` zO)=@ddfm?BWu(7Lr%&Yc`2ZHC^@lsBPV93;6M zS*AZ07kED+0-~8}8((!Mp z{Zld&UH(tK{xdB9Oe$qLkPH8u35vP+=S=)_CjPlm8vh(fibnY7K>l+e$%c~lp9A^7 z=0N&>V+Lt=R?}xbyiP3zxm0_S_Y-aJ81DKr2G1efr~{%&I$zOiOBBSH8K5!U@Fts> zYYIn+0>#j?l*kvQ5a|P=do&}7>#?e{J2?npUm_+d2Us2kAUh;D1GdO`r#OhjKv#NH ze@DW;o;Q2i2z`qE>C|AG>ipCP6hlTui2~OfXDJ~WN`Vu^Y_$D*08V~209MLDQ%uui z2jiq+r|$MaxG+0;&=ns(Wrl%l+a0izB3YC|AU6kz4Kl>E7I`&Oq4A?HbYu*wcHD0H z>!8%7JmmOfn^%*B0o}F;v&*(9g?-Ky;`)_@u(fb;0 z*sZbb_?6eDIK$pq zzHpbYLa%`xWn%gnvCb;?`ytww_cMO+hIHkmJBC2J>G;F_CUcf@_YlH%QZd6ctz&{I zmW9%VD2O=1Ulh5mPuU@JD5hSAqwWjJrU6$Ol!MD9>dOulQypehPj8z1b z#U(iYgA`iXCjdENU^w~W&zY3Ez8askPKsGOA2R?^e`3}CxPb-$6fF>(;)g!2iYJV> z=Ux4*E^0r}l$x13uW5qJmkg#szZ%(hWaUe;GY>&;l?qwpTiULxB+Z`6awVdV)wfcs{~4>6#58VHYB=!?LOBc7oute>cjFcIaoKfC)#U% z!fOaGtn3ryMMB`95&}?Ga)=g+$y)bDHc7*5no*7^y^0_O;uC;C~@l1FCMCD^Ec)n4QY{s=C92&D+E{W4`Y9}MMiBU z<}3%0ET7>k>w5Q)Z-Ftg(rOT3e-zL>2PTm#q^zp&YK>~FTOFb_2MZVK^(d3Y_@lg~ ziWU#gmf1<0v*-^<*El0?EjdH9CwbxEcf=Gyh~rNpenc})JI{SnM9+3P{Xe<*|n zAh+dy;odrk=mWs&T#;`%`FjtNsBhM2jFj#UEmR!XfgF4)Ouy3sC) z<$6|3hPZOYkL>M11Eij0%zLD}>x~?+gR}Oa*`rcsPnR=XThnAUfPv&9X z+P5W@@aCu#eN*(OyI9_Ax>ADsesGpeZ+pu9VK~MVNm{nYCg?CEsmwNQGyZ|SSmBR! zNP8)!U+>Q5NWA}n z-!4orMItE$Eucl^lKHIHq`p~9>T8yFa1V0I4Jq9h+~6Q?GL<)+$Crn-X{fia5rOTg zFDA}?9M9BY(@}G>$g`@rj;Si-4oHe4h1pj%&rK+wCYC?!nfJe_?%?$;-wsB zQTB^wM4)n~Vq%{CUJ{=#zwUb0Foh>vrA1CbS@3h<3xNiO7jx};Iy-tg=4VT1F+_Ga zcZM9_AZtizJ}p5!TAm)`;@=v?&mFh& zL_aV|h=`MUJOBkc#wLC~2bVLf?hVQJkRx3sj0hR?=LkKxbi;XG{MI)|^d4^r_`sZi zm>p6j7M~R1Z{M9&P7Ngqcjr0ixV9`t1jrZNwIFn{dx;ulFT6=Wa0|`8#Z98!?ApER zEHJ?lo?_jf95iou5f*VjnoR`bJ~il6&{@G$jIxIaAH4^4Dz3}-2)z>WzT(xt1%>ikM!<&$$F$<}5z zIOD60tLM=$*g;}CJ#x@$g$>_rih-b4et53yq)o2T>&IYfL|x8k{gy%t83&lK#!X??%(b+00qqtKQ&*PT=v&Xf@r=$Gm5Ys8E8j)g(?4vie;4X z4!fe^GT#bxdjz;Qz1F(&_3|$i@&w5QuAUJb$|vvQvcDRaYe?1ot5Onm&CRy8?l4i{ z9cRgwgLmOZ1#oaZaPzJ3Z_O*^OjBHrw#EU7qbja+o0Z}hINYzurI(nE3mPVwGXO*; zE-pe{nusf(4{9*UeD8SADrr1*p4C)k>7o7DGf76PlF5!+t+lflypWotkyj(La^c-z zt0lc~uU@xbn&s6sf+da~OMYjtQ6A>>DIty|HAkfZB2c-L zKV)da(bh`}hikZ@&O=y`u$GsY<&~u;_KnQFJ9-y|ggA4S#}+Wfrg@fqIQg4Z@Qy*$ z>*d3yoZ;TR5ae=T?}DNHN)HrW3>}6TQ}H7XyHImuJ<<t2CRK>?<%K3WQn4#d!4-ZD z?&b>k_nJX;g_A6%OYMr7X?OzzWCbC~9&S9-DA8+8DEw6;!~mPBSgsI5FPN6gv`H{@ z!Eg&W-v(o@Ft667^0D|i+>WoyVP3t9Aweg9^*~8T+(Ds*u1=+1_r(&-!|;{(k7FGW zHmf*y!nl3TPLj#WU{<*m$)Y(;Hp}YU2}}!GRlIvDUndZYP!%Z}t2-E!4fV>BF^yfB zXJ6KK#nPetlj5ez?5nOu1m22Y;5*1COYHf4@2bLBT9%SC`%*2sU?CL)VQ~)@D0Ng^ zG$1HDugLri-0aK#-sw&NuOKI(VR8)vce2fCGN$vj#mX?4Q{Q0>d#}@U(FAc~t`@zI z$O_<~YM;VnOh4fwlwnIj$jW;3fGIH=7hCZv@S~Mx`wl&SKcQk7BhUJS))i=(@M4Lg z6(S_)l(1{7uV1dNxB~Nd=wx?Chd}|@$`zXc$A#5FA1913lvuu@F#pN0;;mm8>p^}m zjmU+{SM)l)oMvJ9vx9LQbI6rI`%0~O_5LX2t%f;VojMGb zH}cA>BD29$+m-Y@*I&|eRH(do`xkJ<9t&Ry>^h+`Wfr3aQ5NSn0Qlh&3^r~8^Q55_ zby)?U>oSaO%Js*u;EL>f`m2Mi)P~(KFA^r1;z?P-6%(m!j5_M1M<4qpg@X8?2zI1L z)eg)L^%Qm(8ee3LAv&t@Wf;0UDJ-DE*!U1c_q^#G+igNiMXMWD>(+`wxVcW?FP)}} zRg==20Z4wDGr6qoOv*Fq&un%m-t`8OJ4|{NKif5yk8~liweH-6{3XXh?t&d{?qRs@ z_TRp1q>1kd0MwtXl2RarVfw*sJ#%kWfEt4jyx#6U(aY~m3`H_Wcn=rYS0~!uDjW4H z$5fLpxb`w@vuTcJ36FQU+YlB_VIrRR&aU#>AIlX5&rNol%n}aow#&1%bXHjWDvLRYT0WpMB`d^&@cv%WAUSC%0Bx55*Wa|o z2aPspXpNKJj}m2MWZ*c(z;fvsac`*dVm=R8X1DhnQ2=9P9ttiB7Zs$9x@E<=w5S1$El+@TKq->%P1cihxh_uJWG%DrEV7B?wDIIQNC_+I)_ zke?vE3Pm+fKLfHD>K-f{-ipe39RXqyi|anZ6##1^?XFhFuKM{Gg7=!TJX+mPK-*rO zT6iE*F=N%7sD(+(svkA-Ui_65G&_c3ce?6~M>{sC!fk>Dkb?>F!2|KZ!{C+^M%ebZ zb0S+qAN*iTspz5w(#b*0Mp)7}-yb;@P3T68TohE(Qv`Dr&OH|$tD!QfC|GDTzb8@M z0fi0VHfiUzjKt+Ct%M0ED>W>I`exvu55~%CDQlThU|ro%zT5GAjiReZrS209Rp#Xb zL!_xBko{T4!SJ%Hm)gD>24k!}cRM0bQp+75Z=JIG0JedwPDtQQ^~nd;xAuWdm2J-! zcW&K^eP#qmu=Ip==f`Md?=Xsf7zBCibBb;p%$KSg|e zA`>-2BYnxZ!0Fzwm6}P#ToQ^nrHGU!h|{ci7kUq%gF%)9E*FLO9#EBxjEZt2e4Jj; zm7?F$FUUdwfV^s-`)d)(#s|LE1U|*@4W!UFw#HOOz0~}O$7NWxrSaz3jx1@O5cNvu zK{vzRhjF>4<6)uH9>+77+lMOf9eVV8Z*}Rt1~MUjjHYjNszLf=F!dk^SO`tA^d+Bmyy`*MKh1vyfS9;A)RWaKk{n9>+aou zvdpX#to-KQTk~s3(&)X7*pcA}BV7}`r4CU0%u@=1P-&{LhWExGu!l-`9pf;c!lNfl zU)+@o!K&0KmW129WpGLLg~$@p1?P>thai`OaM1QJg4&-Q`DpA0yPTt)@6N61Q7)RE zFz+yVegA^uhiGdJeuUV`K7vQbCkr@-f*`8^Y?03Ms;?5A{EnqP;f`VI(j#E${PHh8 zGh#TCFYzoiBGChvAE;aODP4lTKgAl!^II)S52`c&v_^IB^j_)+ig?6db zwu*V;z1*6LQ04x7&ldclhDC8}F4E0h%KD@f{s;0wBZtOsoFx9R+vE)bC*LK4do++2 z#0uNqF=6Ombs2m@Wk(NaTv8OoE2uNuV(;v~I!ezZ48ZR?!2bxC~_ zc9NhxM0Z>1&uIgQWneAp!xJvAdAz50TteX~<0v zT}tCgh(t=vaM8|>X-6Yb6GiDBf>>b;WL7z|->zXnoFrFk%m@o=nl|1#;wqqa_?npl ze(MI`HpUqypZ#ZzOS>lU)0s_`P$u155Sa+Q+&+0dL+;6{o)TwRs01@>IZFy__EtR4HSu+Y}d!E(%3F5(N zS0eMk3P^8|*SiYx=a$nx4msA!6f+c@P2RGMyVXMMBk0Gx!7GIY)bk_!=0o#&S~h@={*b3(|jGf z&#WES=rKDnTNDNq@347lb2GHFF$TN4jqTI^Jok%uE@G8K0Fu>M>ibs9J_1hdvQMtd zbRrYWo{_oEG8-u5YT=TuaWPHTiTDBK_&1O@B1GG{g3AJ1#eo}$!~6BLx8ufU8JLW| z++T13H7W`8WS6iq zOtZ=H&#XmoH28&foCxPBe!PD0qsYVn9cGAFuoz(QVg`w_L&0YjDC=sy;F|;Z)Ya)W zza}b)r!+WJ1iaD;gB=2kTNeV5&4n4=ynoVVmIAc&)gBZ1H46kzvH9)hc1GSQ?YelD z&^7Ly@D~Lk0fPG%{U{`s-UpoF+L90`{PaD*w%6or_}9X3z=ORRZ?*=ve*g!vxnoZh zxlLgmV147fu5L*~c)glh&?ZSuMIoMRb(Q|>oZ`X$WBWgW1DnYIm8Isp!k*+?(qJi@ S%|`|Poj;>}I^(3-!~X+>A3gE_ literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/screenshots/hero.gif b/pos_add_product_webcam_barcode/static/description/assets/screenshots/hero.gif new file mode 100644 index 0000000000000000000000000000000000000000..397083070769c21bec2ca31c2b21611ae92b5c89 GIT binary patch literal 131940 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

uLV-*!!%U# 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 z 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

^^fS?4P)jUKAtX^j$cXm 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 LUF~a*23+|kO~P~< literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/screenshots/img_3.png b/pos_add_product_webcam_barcode/static/description/assets/screenshots/img_3.png new file mode 100644 index 0000000000000000000000000000000000000000..83516e84eef124dfccf58262c9758c9d0dd4bd98 GIT binary patch literal 197768 zcmaHSWmH_-vNaYYxVyVUa3^?zThP#0aCd3k-7UC=gkT9lL*o#F2X|=P(`eJ!*SYVV zckelOjPDm?GkUMRR@JPURkf<(v^12lpHn0f7$TmBLFsKeOXPG@#zlY|E3$Y~V{dI<3;1HPaq4z6~Uog;y(% z1)?sm?yJPyUma)iHd6aiwzT$lKC?3I2}PV%z)zR$EL|I!JM*nNu4_m6K_@Cw52#oT z+#8n^;A~A97qhDV_{pRGZn=YPEdyIR7lF_mNi7tE50RxCwjQ@YHg~=8Vt=0;z}CH%$b>2$MrgX#=hK5T<#hDG9SjW!?11CW}RmhTPqzKhPkyOh=VnN;(C& zbH5hA)R01uwEWKxhUsP_B-HEr9Qtplm7Jk`dKiOR0#W2*qI#W#yzRPAJj&}@5e2T_ zFqAI&tbErBxvg%*tO6G-8(dRU0eVn0@Q`Yg#{5p2hqM4jf#H|29X)>+Ff2#5eqbJw zc=-!m6kHQRirg}e($4sMY{R^1JU(i1ePy?4BbTXw#xy}lOuuOUEe`4XYyGYJhpZvu z!$uPG`PxU~@G`lSqg?2&+J+r^YC-VR4R0A;lA|>ZwlXODKUHeJfw!*%47zUd)&9=f zF_f0eWz)|zVDTf;y1xQTNmiw#xOvq_>q)PRE;TzgyQnylJPQlGOFv%ZfO4-nUrFf~oETi=qVV=y=6%LbP9wvM74X~I@*NZ0eZ zZPbjVNi!yj6GA6t$Azgi3{1f8kXZ|Nb`3tj*Y`@BGVeYR;p&T26fhTTA=Z}?I^+c1 zBi+00j**&gA8bjW*W;YDhV=%CLGJ-)rFEnE?-lnHnFlR4sX6iTC0jo%Csa2F9r>7V z9co&%ECxsxYnme=XNUHLdy}&EI31W`-zu_zbNZ$}Ld!CTo;{6;yU2?))xVgFSUr3d zeDww>_WsDdwH=Y=NvmH0rDsOBPdf4#n^-hABV|d6k_(YuMTI7;74N9=-M*dd(#-*x z^gC3!2XWUWv%HuSBj!W(h<(-bANaB84VP`aSN?%oHq`N%(ChQ233bS`p-{N-S|Oz6 z|A%n8U&(e`e6u(!5hv3a*U;RX+f+_dUPXw*7IbJuJc+B?{L2lc?{!6r6c6( zhXmWwvi~Qm{Sp;ZNPTfH#YT{2S?s4n@bj6R*;v7W{cS(PhfZ9_%SYR%GiU41>nA;Y z4`2blo1anE-IDd%uPqccFy0@%$0MMQ|Iz=Fnqhd~8UXqBdykXfrYBR_?*R65MW@x2 zClWVV$xh8LpL&4}`y%4bEWEZ&-*k_3KSq@Xgpn54Smd+fBI2N0qitZ!&ah;ePH2v8 zCsCEeTRSj*)8+i(nPzw1E)RbgBU5U_CBr={1N9~O>G8e>aLU&1@hDH(Z|||~Gq1Mg zNyzsbC17QJ2wI5WCT7z@VQ5cmrqKwb!z7393+eTUvul68rc`qF%x$g=Jx!E7U~B7) z67n_BMFH5&e?L;yhVTU2x-h)1k)dNQyYM-hmL9YM%x{(r2w1qcFu2a=EUbys_&#hq zc_ogV1lM`Y-(#9YWN-WuP`VD#N$>?mV@C_PFJ|(Ln%0|u36}}YAp?%#|L3Me*HF|j zK9Xfw%3VieH8ll}^5r6>3A$oAE#7Gv+9}^R@$(VAD{0lU3B2;lMdH6d=C57`(dy5R zNfl|Z=2}HFdbeVeFUMO@yg(XmRR6J}Jp(b0K*SJWVVE=uJEm52^MS=$%gP?wVc~op zC~X3ptrly<7YdR*Ufr_&aDl$Omz&;rv29j_+=XY*66CdTpZ4_Aj*AOx|H@FKiSUjK zl&FL}-u7UbDD6nFUz(j<7Sy(Ie=e@KOG}cbl}ST}N5Wt|bD8xa;xKgTW%@yvuT;_@ z*h7I8d$2NPWy3#(LH;`UTFNK50e?*B%1!Jo!%5m<&{*f8DU-%)M4%3P6tw*sUu%2u zeEkWXB;?j@#&kY*tR9$LP>VLXG=s#^ugKss`9q<==cpl3O=$3tgy{DySzD%+P4~HV72f^`Z!l|m)pBE^Z}y#4UvU|v0pnKYCD*J_EU^A01eBmVgR*TA%Qk*>e(Y=BAgT)p- znwt7RY%w40aOo`6=R#v<;epR$&RzxQb9dKcD}?~>+vNCgNtD6l!S9RZn`Z)s1b_)A zq0Q!_?Cz9yOUHi9l&<(`*GK$M!Y=Z%rs(H5Xcoia+SNZ-;;HkP`A`(Bey)hcVhZ-W z$xp$~_vt+)jfsRMsiYW26AK_W+G}!-=cX}4g95h#n8u`#>955roR{MZ;%%^K_%WuH zDInL=u5=Uc!{3ceD23Nxt)HxwB#D?t}N=M#P+R>ocn-cct~9PPat zVeMPjPQf(`#2zRmgiL37wy$bu4a{Q*Wvr0@6{dV(3fq|4;+LGl^**>u18gvUNF-5E zr$}fuB>dTOB4?C^n8p~>Yp5L=&ml2N-$+(u-QCkv=jcm`)XQgS_WX6r>C3lo&#aAP zf7)R|c;)9n4v~rEF=X;$Uv7NA$B22LN2kO^4qGdq`l3xb9E}3W@x|UD$x+0o=IBq2 z+zQb#Fym)ed1U4YUUfjl`FII;Z=3M*Fe(rD(O1Y(l|zxQf^i@tcd{Mi*#V?#89(t~ zfN*#|kjJ!O56$qF;ctt>06$F72CRN$DnRoKt4Dsyy>iB~;chlRQay0Hlo$FaolyT9 zs$vS8&)+2Fa$esYl>=UGgotySYkD_Vnfg)enzkXJmIKvZnS9lsS$Ka@9+le+_JUAg zG`*#D>a8-6ChVUHdI!>h>fQt4hsa_964Q>?ALhkY9}8 zT3nqrPrV%LbtOO6%8blXfJ{5@3

zC)uv+de8oF<(0R1K|s+*s6A2#>k5j;=$ zivNvxtU)Q7k#7>o6G*_*8PtjgxZ-2vA_(;9^kR@PKtdd$Jl=KiA&ZdLt4NZoi`Fw=w7`S=8Wkr`&o{ z3^3oMz5z#njA$iWT z=T&t((f|5;Nq&N1_xK&0Z73YgLa6()pO7w;QT<_i_<;Fzs7HAvh={lDk!Ww#4-o{s z7b6=Q?FBDRZyK~=KRxnM<~%}yCFYc7Z`Z?@Lz)rtiylMx#ySaf%T0cthO8@Xf97=S znIZZ7SWO~QpDuH^9=Q2xv=e5N350P7w^VK1=QS?;J|N8n4hvO3oWG+=>_W-W^xRzi z@WyKU3oYZCVZ7#=NlMiGN+Nw}P?7{CLUD(*S7X35XY1y0QbSvkVbh^FQ%*>-?c5H+ zoZ&reJ*4|{cin9R^bpxjI_v*vZ66IuNkOAH99OmDMZfh(($(7PffGXm5Ad$Tby+s zaycKG^xv9#uOC{X?OwgmOna4N)@btu*5gzeOolJz%!GBj$i`6}QQSp*{YGN+F_^D6 zYOd-HS?!E1;YLI0H+`HnihW#LRm=juzKIDG%C}p#QNwnjg=S}x-;ZN=Ssg8ToGu)- zZeG1WC8wDDUV-qq>HJpB^DW=cc@|42M?xH4F2&&@Ypw;d=+ls_bx+?!clKOw`xjr< z3{wsRFbQmi%DJYKK4QKCzUw99&{mRQIfZ zW|0GSJOQj9co_`YlNKh6$r!OIZP|U>>XYdV2S13dCZC4Om~s24RFpHc5S`txUx=Q~ z=LDM7aM$*RocUAKVi%GYd^kc)qKH?0^eEqxW&%mKo++B1&*w{hOug$`phwAEp7pLa z`<2LV7;wfh5pnvy>w8#sm5r(2`YeM^5);+%*9giRFEN&Mzl4ys=j>mV59-!l-m#v_X9^CjAIcZ)<~&HI-fOe!?!@)^LuNz!d>kfwQ9XOZuP9PIBtKMr5?! zWOrXz(FL-s=1CX#rTtpAsJyapZZB|Yeiy7f7Q9bSYJJFg>iHG;6s9@^3#9bU-a7Mr zAVK@E63<%yer7AOMfgqmh8By@*=oWH_%#%lB88LZZTP+BV^aJ_1M{BWDy?s84IfsP z4gLFe>=s(c0j|p_OEzeqMjYJ-Yr6(N$7@3NTQpXDR$sJYHg8VU+iWHSYULt_qYghA zqril~AJK|>z#XT3)np>gAc*MmXh3w<*Da|BM#xo;uMeZNu-xOb)nD-#wzd7?aTd@C znPS;rm0kVcEl8XmHpGrG0ns%Ri4mn&d__U~?rL4u%yXa?M1$2^-F~#TwCg#5yZK~1 z&%pfrgk;R{ylIMdFlv+FT(<>=JZx$92aN|aPrmg~jHV3EUF>bHgfmhZa#Bf%UemH~ zg>oJ1Dn_!>{n@N7WTxGVOpS%CkVn*_U#!NZM>9u#Uzi$B%&%G~{AB;Cq@a=@M$kqV zh#@x1N1j+0-TkMfq9j3uoG&oT1xBadvFJ-A-Tnc*U`<4sL%_5R3lQQeqKQ6@8c_# zb=DD$DT`Rufr0^&VZVB9PquYM&F8OqQ8 zdtx!FpkQs*P*R@-eY90gMp>0f!q3<;nT#nVB`|i3- zk}A783GgF!aFRNt*TP)^(28YYw!@=Owx#lpjNN}+nA1RyLP z4PK8LKuh73az{tOqK+D&1tATldjanQFi6&eN#w%SGLNE{*Kf(*g|RH;Q%VqzG9{m= zac=8Zn;0u4sOnx2ycB3F^xW+pDO{ag@xK*;AeG`+{ul1+s}D%<^`|MNcEts{{XG^O*T4rLt`p5usj#aAYx~ER)p-PBS zW!V;sIgjy6C1rLK}nNcvj(jwDKIB> zOQq3q8-R85F{1gToU{V^9*kzvXW?|`!ilp>Tt57QDCg}L^fbf|KK-P%h_>oH!FNY8 zR>d$8qkia)-(}7S-W)Oo34nEc!sHa=f2*lsy6K_JcxidWZy3uU_a&TNXOJ>m+9 z)Jb?I7|$=TRSKyRBi46%i78Uj2*cC9@ngCW*jx;jF+0m}92z64^6A)M%U=~?>COI3 zSJgXYqq87OA5tg-y0YNp2+{-Z{S-=(Vy+D=7C!3eH?XTWoHO{hq>R!n$N!#G-Qua#@F~8zM=|@`u4x#PVPdViuIs?m*2C{+P0`0gD4G z1ID8X&2k=p#HtuzM9MlZS|Z8l!Ep5o4{(Csy-}#h3{#lRHcwS=F7uuEG=pD zin>ul6t?_%>Kp45jwp6|jE@nkKNhkvbLCP!lwRPtE~Z4YNZjiVTH3h@eepRe{IS#7 zo35LN=P19M4HR8bQc$N!NzEqMHbAkMi8L3S6~iMVK`_yOc78+DYk{qJxWbePY{6A` zkx48NAYfkhDQg~g4B&$FrKUR#l%9DGbakq|2*fEk4_piAEM8-8CBSn0F;Yy5j@t;+U-l54Nrfg88D#yxaYG~hE~_N(b%VeydyT? zcT{BCP9zOm!ceu@N<7Mmb!1CFd|0m^^zSl``i(*k`F2u!wQxO1y1Jyw@u}-@syNQ_ z#!D+;drky&tpL<6th))mLwfynyU*1iX3=u+-P3pCP4_Q_XJ&T-*wE@%dHq<2bFGya;fcZ!eHt}==wAzUcl08HQZYY z+7K;714xYX z27oDG)7k1Er8+#`??H-Ju)b=BMCQIg7`hhNai;)j~8mi7o?<9b63Hk@z=M(8C}n zcCT(ruWmdka?&E2INQ_t4sn`7sK*@fW(MwDnHU|FiwPl8`mV*nap{jom@_bAPr=KN zZS)(t9R&z0XOuGj=IH{p0AC&t-%fF@l#8ol6O|0txknjL$w=3aB+=X8wc}sCe2cNR zpcBJ9vR4u?q?9R+WWm3vy-pChL&~iQH@FBVP*(Ese&LL-Ibn>gS}Yk# zVfS_H;obk8$`Pm;32Zb& z8Ktme99Q|!h8VmZ$UH=>duWQoxBV!;G?Ov_N9`2e*Q9l{=*{q9Qp#YYHA`+=({$)5 z1I%5@3CTUbYUkTU`rEQ$xpj+{63j9~axa{j?pKE%*JtN)U&g8@g^~LRZf}=b&^M#V>Q0M zOe#h}FyoB>W+;Jgr_3K*IX7tY{Vsn`ksn%zBeEiTGp@>Sc`EAuT0fY4?RMP&y4cEh17K3w~PvHG;P2O@hSDzfKvWwmIW~B0o0=DswyfuTI zG7s=uxQwGc{uCtz%_xfjLSH(bp9r?PLZBe1;_<41r-IXHSXwS{K#nOTDQtKy@pz)E zCwl@nzS+`-cM#gm4Lwx7>XW1+`04^eeW3hp@Z#Qal8W0q|Yi_Fe`mbJqP`1(U zn?NR(XQk`{)axJ^c7ee7&_3*}!8_qzUGx6H)?z#=!@`B9?|PPYL(6A*DXj2m;q*2} zEaN&jr3i6Kv;e;VvdnS_-r@7D*$`KWpqePrk%Qli^fwe#L7bl*l(bB@GSuX@oyTRQS$p@<1!;JcN4Mh|Xx3ux<x+Wr! zLjiuG_tdj?O@s9QUVL9f-XYLOq`nX%S_Hg%DM8$|-=ji9oA^D6-0n-w9%=@$ylv96 z_^;ZQDT=Sdk z4IQD5o)O8wlTX!1FaL9QxQqu@?dSJP$*u4+g?4{yfND3AZcJu-0U-+=mdXR;a09Humq*WowQfikPV>?ys*?dOYP;`WBCxju}A z-Gn?ba9rSSorkQ&PcEQC0zB0jrTw8oneT|b#ii)^@mu%99Py}#Ifiz;Hoq;?#`M{c zO6a3T4pWcCU+;iJa37Q_G<|&flU49OzDF!QzyGX$*KkVfTF9gt9@B#YM9+T}%0AMDItFL>$?t9e^&70Lpm@oqp@LHp6 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νG5k`2`5!0StW#8Or$>x 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�cpy5YNJ)yorDH>on4C{N~fO=pe~Qbl^2>$P%y8J$1BiXz;6+?wa2aAyTqd zqU6@m?+B}U5hJ^f#*hbBy@~s{R{QswGIHd{O7~#q=$tcL2}0!$dXbw-peiL8ftGkh z7^RS~sU*TRkDwh`yeV9p-{6(5GgQ1*{NiM^VtaYDh-shSk`;R9W0*1Jg}iDxMaX(d zbGCok2vFH`klBfApepvvNp2>r!ntbK`m~vY9V;&7oI-6@N|O~(<9Y-IUDRm8FVbj9 z4QVA=jp?Ogdq*~+;svK7J$i|BY`$LOpV^*D&mTL4#QAze#sr8BGUPqw3mux&=Ik`} zY-P4%H37!X2sk=84lyTy!KG>ax-hG<=E+C%vaEtz=pouLfgJPMvqHU^ zLg=9s5i_VnecAYlspn+b$!GW%F7eh7Q@NxkE{uXc>P74k_|zx8;3Dx6EQjyFfj4a< z=o<<%c)hd*WID3^c z!ucBK!*^yR?ET*c#s8WZA0dc;z5;tMR5u5BWX-ip?@|ze#9~mh(s_w$WUYmCev|Bx z_yAww)@J&LwV?Dl(JxHLkxp^A!{M49pZ$L@P`6RWl+gF!5W)iNf9kOvw>ROT?)>C8 zD+_YZgH_IR#S>XYV+2tQhr_v|@+s30$=A7x^#a;Wi)}v#onz^jA;qDgBT8?pg7AR{ zZZDO%F>GQof1v9dY_T)(S%t2l6qe!_SC?YEPy=egM%Q!Lj!N5>mC=P9isJ! zvogdpoE{(%Eb{C|Q_4|k6cYY&>JJSs9^LS>b*OM>GpNn{`=TaGeB4T})Ewr+6=BMS zShEm3Y63(iJae@v4$`g(ty?fySzRBkYY)Kf_4>+Ff_OHLckadbyg(jv{|P4~Oo|K@ zx+h+$W9pu5)`quw%1iQf)`7=m_Yu)!-G3}4tknl$yMph5R($##_Hu;*7f{Q#HaxUztc(DR}BP4ZoH(U%-QKW~<+I zNAI<)B${Wb?gg$pvMh@6S}!+!2ZTu2M%}txOHbc3 zIJ+qV-(D6b8NuCeNPWCT3m1i}wJln#S$~FoPZ11wD`3^G;@N&nX`U+oxW$(eVtG8r zIY!}N*Fnv5YOOy0U4zDr4P$~fr-|f_l)Ws2=TQUnhngH7d*I{~=QT_z#IAQDAdSZ) zIL5kv3mZ2xVnD5d5AzpCU8uOvsNn~+R1_)Gu$@jKz-b`Jq~IlLsR=W{a8EoI5w1B^ zfMA|*V)12a;{OG55Dgum{5nKoLo?8)4Y zrZV@y?XO*X=qFQhKs$HEO|z#S{G#?nd~C;NcuThCV3J1ch}mCc)_dPh@Bf3SFTzbf zz+E;xKBsy!F(<46@qxgCeh^kz*|SZ(oi5sIwu;^xH47XbvQ=MjITPu7S+W7~$$|U3 zrJszWn>$LKIBuCa`l1plUL2Z72YQ?gS=JO06HDBv%c>FEcOf)nU!_Gvf+>ME)dGnY zb?f_BWJHz{k{tUp7wN$yW~;a(27;+iP~m^!H-;e^!lW3`PQ2`FfxVpdUp3Y=v*dfZ z$Kt5khN1mN*TXqe0V$dmuyX2iC#p&fW)7~=hnyMkx==1^Q+q#n8w_A$Hzl{nvrKAz z5&rq|k;|SLx+2t(%i>_{0>?SYhWE9pyFK>OCQhXnK9tOYIZMn=7`__}nyB|}9qiO` zvPPJb3X$CSoXYOYaP3^-#g=QAi^=Wq+l(g$kNeCeb23WCTvyNwYa`&RRVYjjp}bh0 zX*rCBSuiH8iaX_!16wE$3HkoR;E|_mg1$h8MVZR%UZfCik^(iKvxE3(M)Qi51*&=f zQ9kBzTNm32imqZ=2X^!NRf#4O<@Q&~rlx2yx+thKAjD9Nr6p2=CsL&bJ~9spE+vT> z)gw~!kNb_2#{~cDzw_SJM5Yt7gNN9$s6P+>4ZWxJ%569?oIgKPNUNtr? zc`Ox*51M{0ks(#mym)C@{f>@O*zY`gRS~EKcbQb_?v5{T8a9n|>O;myS+gESv0|uC zKMxMOA2cED*>juBpCKP~6`9&SNeB#mi(Is$tZAq4Ki1(=2*)^ZOE#q=BR`3Mu`j=6 zZy6^-DVoFAA7dqd-_3SACyw?>8MRg&Ka8nm%4xk|%VkFYb!H=`3H7tnz~6;b)*>Q( zY~8YNZjtf@n>+ve0jwWZX>5tZZgEW%qoRvvot+D#-|xUU-E!iI4uiGP5Axwjq{NX< z%QI9aLh;pv+hfE?)f!%{RlI%A9k)>uNTb%NOjXEO9k*01=%ERN&?-?tdTUnY>iwcm zPrO=_txPx!sPb4#>;>u#wXpU0bv89x#)DK|NEXm~I_W?P%7YMM#ZvzE6k!@<0mulT z#h8qR$>?>er+nh-!c#D__%D-#V}V@WBVds$b#me*u-yp!!u4Ye16+EbU&;oN@^uzE zSD0R&{uT{t*}t*Wo5OYxa}|;1Ze@()ULMfa)T?;6H+hr~coThGB!zm?(N5OSY$C++ zj(q({QUE~~-3xfz7JsLsJZF8ueNDWD{M*9g5cL7()8FEX8U&)p3;PTE|Jy}+JqQ>z z*?)cm3u9c(3BwEhzw!QEXInLV{fmxNV{fS-1-TJL=l!qKlp6c=foZO94lp>l(X44| zWK7HJT>UJJx?7R9U{^VI+J1MyuAW%|7G4jtLpuq>5`$2OWQK!T0P zjEcspu7Rz(VbAv|Hvw5sEL*qI5_FZs1UVgs=F^TQl!!fY-m6WHE0m~e7*zOQecEQ7 zoSl8W=JRKm%c1AEXFtB8mO(5#6Kbh8x$8Un`v&?os`eRkh5clxat756vqHM;|IBvS zqs@NYPoYmpP*M8`UEU@V013I6C&NH?2l~iWX`6Rta+0XhA21RX2#=8d<_oyPCa}b#b&oPC%y(ffSQvj2P|itVJiT1iDS5rfwkW6w@Bl=F$$S!5p4MoVog4(Uo2A92pOQ&%y-Ymiuz7lD3A z`@iYL#mDFV$p%ukzV`y|QBq5f@6LDc-vj0E14L9|{*MTr$$=GxmhHp9hxHpgP>%h; zF-D*wlRDnuN6e8ZO9Q-h?n4#zIYRsV5@ z%SB1>fYuCMS(aei4JZcCXd@$YiActtbNEy#?x`_cQpYpFv0ofI`S8VufI#Jk)$DI^ax0odZC@ga-Jhw z3GL=3`ZMKliLK^0dt;{kXM2iNN}_mhtK87fRfi=eT7Q|)1g^`JDvGq;kD5lKt;}BO zlxGQh-y-vgSR41nhIsq`y1$OJ_Z{Gy6twH0UHSa)a`oSzM2?VNp$@cyUq>=3xfsmr zR7<78$SL9)@@|vHbXgnQ2(zRxsTM*->U{_VO$r;nrr@|ISnRkmklSx-$SX zZZ4l~W&XWM^wjP9y9`Zaib(PY0cvA)Fg5S;@|~}+hYmHNs*8tjgedyX&0$2hOl%>m7zfso z%fBFrs-UvW+IVblZ*M~rUWDh8eGch-kpLws0>BZbee$REx`C-DlyJ=i^)e<6o7DT5 zvK_V!J}mplOp*8z$5^v&X$B060(l5;;7$$R8Ga2&J)hC_{I6FmGcuDhWd>`r&V+)^ zHE+>W7yNwIfN@=zmb66kQPjr&B)lGJ;c57Y`gm;^G+o`k|IM^_v?Kuli`_K-qN{a3v{bqc7(_fxHnYRt-hVV zrznV|x?uQLt^DPLvd>|^lEFCjTD@0g4S6REl zoufSNfw@y5MJ&BZOop37d;%BGDN+i9TH2^AvhF3O3LsZBD~W`M>zp!9yn{p zMSyu7`Tgz~zsdt<-Bpy6o-`#h!IFbC5umTm6o^z}Cz3b*T%l{GWch`olln>ueOS{7 zdBKzld0i&-VvP(dL0y!OjBbQV+kT{_NQp9{j&r>#ni zrWF&uEcVBb`bhvL=FjYt2NG_p#Z_@!&v1rYo1IL&ggB`rp-aMo>uDd}9jYYg2*k1J zc@#4(6lI1`FH~?BHjAnSwjNg-ZXVv-tbzX1CaOI{w^-NzAs+wGUrUZGi#}d#1<3gd z&z?~C7|&Nr-zffSQcgW^OJEM(GY2atf70W_A}3N*xJ>g&Wi0#~Q#|2}{Y!^1GTw|W zNA=_nFW!bXLMOq2d9*_v6Ww#%^T$Rdg);x*EUxm`eC#|Yjq*euFmv`<>WB`v$^Q0n zl4ey@NfihD0-;A|pU`N2gB<*zn-Tjr1~&FX!(KnIF9$6?f@=?LTm!+oE}nh61=;o) zE-vyqF>HO}+bKzfY5@l8VJUr^E^8-WAmdc=#!`9G)HmUkQC!q9fxKF=Y5|aDa7id7 zQX0kKG@vWj&EHS9WtA39uDLyMuthd;WtGq?dun8@F|*;A+izdvyWPEjFVmolNC`I{ zr%`6E$QuQXK)gzhteS<~$RN!NL)Bkq$4*}$f_!;(G2mC{k0(*bL-BAFRqc@qp8<*9%nbRxm z{)6l&EfyHNYXMt|BbVe{QO!?)cn@sin?MlH_S2|#F=G9UMJl$ri)JCXhI}JHhebw( zFhj}{+Ib2i#^HXdvUDnI>RitpPQ`aiqwpP5tyxb$3(i)x=-r$+t5dIQZdHmHA~&}) zUi2?baUIW71f^;|obJcM^OVcCEL(FJq|V^#u^vIK3SLFRa|q3jQL++7Qm)b%qo}mx zmV9Uz&~8Gra07&q*VXKES<-O&5n?v_kzr-(e2Uo*kc#WpB;v#OE)K7%o zlXN}rcGf6BKTUZELr&4+sO79DIAB^=YAv5xNEFqkaV;^N_)Zt>cx_s*^jM^jSOyj< zuFw%i*-&JmPU|*V)gIo>r+mkr*C*t9%7#-F4m>nj4&qD1{?DNh>P*f0-A0}^43;e? z?$!FXlo_2ZQ8J3tC@}Sqyve3&l~TSK9aW%qlMFtVVn#L%O3#kNB+h5>nnh;x(2s-6;qL%rbxeBdo)1>+lfGY1W`5GO!6dlsTr-Ct>Aikze$AKVsrRO zN3+PAqRAUg|2yfw?2O0fKfPf-pZDpv|3h3qX>Y6QdA<_c0>&HDYxxD{5iqX|58U$1 z#(u;wpK6;AuEY1MQeq`wDvF5JmaS87rp11>&5XWp&*P$`X+bv{=smrQrVCJbq8L|K z8JwgICCRQ)W4J_@qjCYtUAOBZ^>lWP=;CuIL;v!U{gh*?{`jl!pT6#2 zSq)<{d*>I#7*p2xbtHCvOK#E}csu*snJH{p#o}35m?O(i>+O>-lAX^!YU@YG5DSSa zDn;3#KHQ$~FA?&AVP8qZf%&~dAN4>zU3~x{qN2T$AM}vpJ9datOj>1}V|q__XZd=; zgjSy>1#R$6*Chr*hueMAqFqai)^0LZg(_+C*kR{|XXn{nr@bdT4{DZq)==ulzV`*y zj=rA##crCD#)#g0Gsh*oGwvs)Y#%PVcod+B{szod|36G3ViNG(f(O^Z?rVzIUba^^ zy@pS6p$biUVG>wjB;#zQKuaA(|AL3rq~}L&xeeLm_$sAau{MD`q^#jhXjSQle1m*h z5^auZi>Kl95c@+N%olJXtG<+Fq^+|aGi_!Lzw>6kMSK^a1V()h?Zi;wW>?95YHHp6 zPnvjKOo-1F8dfVi~BSIC!F=H(w+TaBW_@0;Wx=o-8wdzR{ncemRUXFdjYKi+!~spXME+oI`8$|p;v z2+-^j6;e>sR03Z6H4dfUJlouVy~R3{XP$z{78T2W&H=A>k3wukwf zm@tQQIrCKT?z$ea;^nBw&$6PWc7qM9gnt*&?unp$gYhJS4JPZqa~GWne6INy4J|`` z&@xo=|67Iv-vs+_^-}g<#2Y^EDb#WzVLDhK8P8!Xv+d{D!n7@8lMcAR1@f^h;LmgW zMU?;#{V(<{qDoZ)e`nYxes56Kyw|8%iaO+U@WKJR78IV9sQsbMRGQFgKk!wl@SNGW z=Wer&{e}FES&rJIG{8rSDRpoj>u|jcAYoL{FTJ4;C_()D_bXyK1~Lw1J?qwv6LQKx zV^|h$HTUnN=_Pi2rBNud0j?FLDu?Hb)KE80%JIgW1z90z@Rw)CHslMN-CXWvvd#*7pF5>e_5dHLzA%H!VeZwdtL)}xW7=Iklsd|gEBD`poCdg0y9 z8@IcA8I|=4>Y9S8(_>gMO4@|YAS9EQrvgfyvE2o1EG_9KZ^K^TK+fhTUQear&-Zre zCvH=2f2|H?lyDXe030+GNxtMwUwVs5Rv0rTIBtFY|UEG?K$?$+jWvyiRb zxEnPY*bP{Y|8}_ry9s5$Ue4BYEGH+mtp*P$j$K z>|Y*T!^Xw%* zcuJX}PGwMT8ubk5=G;JHK^$f3%FPd6-7_nGA$hcu`w%g0Tu))T;Ag>6Qx3e8$$k0# zFONe3S${DWEs_tgMm*aWOTTaZ`pFDCz;^GJXG#{tfC9Bex=4|uh{i#fc=2!1M~k6a ztzx(Zg+2LBFSW5bekMiw7MKL!Q{cl&i>+^KO8bZ!?SK==7RJbI53|%>3K7UtI%uV~ z%MA%npDYJh>T6bID4GFLI=Z{lqLm6%k23loUtX>I4+kzpy&K3jVZI~z{D%NeV?SzO znow*~OBj4DVuffwkzY{9vsw)KvWsKOqxbui#KEbb1+xv#kV8{u56Hq%F7WVMp=>jj;Wwy;DzYuVE>s99+XGb@V_vomWI5M+xM^8lF=VwP>ALuI7jYXOzZ6H@w?@o}4f*{oF^Jrt#^GB>3JtAfC?O)yI z(vAJ57WA62mh)!B%lggw3E#aT2^VhCt-6Ijz{xY#2je&+VR)=7*#`P~G)K-XR7s*~ zlZ~`Kc27bjkf;N5@Z1if$-lCO$`Nc%L-(WXJfedX=FD(ENAc;gaVkR2X>Nct-E3pSM5d$ z*OQlR%G6U`e2i{)7-9_dh<;|{)xeKCgv-&)Ku##fhcRb1oOo2Q zhs$=YrnB}74%~W#ORHVOx5I`C!Pn2=25E^Zdd=Y!4W>3d)6oOdp&UL}1 zQ1)*oL3?|W660`;_Cr7+s`IaEETp@!Qfx-CtL6%Oe`Ee`2n&Ki4V6+-0@b=^|Muft z7=p>;8m3Z~-cT;i7`g0a$@46(uCb`GN=46H{i*TPKds7T(n74W`Z}J{_kk%gk;#!Xxa|r;(m}D>Q?=5 zsiI+Tlb*xfd;4@Sy2$du$tr%d+6QmOYA>V>FHDdtJ%EEM#dX#bIKUPUi5s8ac{~?x zuA*A29%lRO4nb?UkKxhtRb#amoNNn`$gcsM{h zbm1~>VWUfXcwFP{pO{k>whj)tfSOM1)z8tEpOsRGn~xKXc!7JqPd}MX+1PS8{3*=A zRLG(W2P$NjP{=QKbp60y0&pnP5kRet*s{Lv4;JgD5PhZjt-#%!#l&ba<=dSS-8Jr! zPsbbx_$(WO5il1MgNS_{DUAnCr zZ$%lgfOwWhp5+#|{$<@b2qDyzc!)WOYn^z|T4x6+h zamK~)#f(JD-*oogKsgIbu~d-?%A7?;o&!ay!zlu9R=l%C5vaEdXKp<9a;S0^Q)DwH!+QRAjO?`f!%T)oC0 z_epqs8ne8l+V1!1=Tdk6ER}Vp!{(IphtCjM%A42Bk!)R|=)IT&FnS3Dj+sCbV!u*@ zO|D##Bv<&tWmxdlowCD}rwSNs!^AMx|N z5NZ*}<$w=H4LX_Y+)*HIETD+!K$NaWT+y?1*FLAriggwHH+QU)y4KdRW!t%)UQjkm zls&mE5FV4glY;leI~tC1f5P+51ZAOrpmVWvQc90OIMe9pV?fxWGmOaZXW zt5Z5}w%PmkBa@`mxJs?&N7?Fji*i>UPxYC4m1Y!(!X`N?Ec`0uoBkVn?|X_u(=U_2 zu9-!Uec#*X{+Y^U5D&@?gex2v-1`>8)hAUvj=nf_5mQs6XxtABEw=%1=;?VP)0*FX z@^=_2*A_l}WA)EE`ZxIUbClCT7*0P(>n!104QO+m)2g`K#-WKQ=PU~ZXe#q}m!~;) z(`Q9PrNeL$HBssK{-UxZYysg4ZqyY)p1Wwpi}#zv`LYztT;`DMz!TZ&-ho?Nx1&ZA zDb>%3t?JU)uF8{|u5;$lSt@uucZP7N9c06&)Tu9f``NZ_9hpXByo~`HTxyO8U9pXg zI4IsTx>eEktazhuEtU&Qo6`)>W3=;q_?gq5;+dgnNiAEiwk5gfX|=%5+s=DjFVU+l zy{PE`{_&6?rx%@FYOhD74&R(cU_DdNveAhwz`WV_7^cY~&4%}@5m~PRdz3;wU8F$9 zsBu`ql3%RQo}e1284dwXdvF0}Z82lZ0E;fY*$Phj0y-4gO4|#bwreq?7-IfST>R(W zC--Y9&t+#Y3TfF~eYqP6t#ZIAnUoXi5eBIn6?DeLBD(aw=0Ekit2iob!yW<_0>`N_ z(){(>b6U#f!{-Ot-vXs*OpuA;gP?3pVBnxBv--&?xS zA?=Q3*U8a3gy}_|r+t;s4OaAUr?n5HNK2!`W?z-(tY3F@e>&uba<4myH^=9Qeifhj zM6|N)^2{-@+qzy69Yme9+=ttW^o$%SvMUtH3h%-EpcRn7zQ*d-bzyw z6`(xis+64AvRb7hC>!FqCE1I8H~t` z=#rV!ssEjZUI9P5camkyV8%-8)oM>3X*dz^)~0`%ui|Q5BRQ$XBcF{9lW0bz3xb$4 zdkT=UlOlgJBJL*{Tw!tX!bz4=2sjNuDcDVYC~~}7sYj9dIKY1B8# z#}nHrmy9C*ptzLph`(}HX6U2^?CPP#DIXuh5aPq^Ki&2A4x5!Po5%WET}z9Z9txi< z7be9Ku6hf_Xsmhx^Jg3<53UZfEYgRu(yv7y^u>l2{rUdJtaglUwCc|OG1o)gg0>Ei zFM-R7K>tf0CX-gnp3zEmgnq;S6S_WbAZZe}jgV)xr61i0~zF zn6^K}bo8S~HwcCZYAvDHMAELn#Gkz= zu2Do=NcQR;?4Q#oJ7hB_C@mv!US3o*TwjslN4a`Ehuw%{4^=dCX>;H&*zsiDjqGFK zt0bz7X)FGuG2d`P5X4?&tHM#_NT#Yzh-faEb8z|oJ=Fe*P3M#BXIY|xyzwo?$X!?*9R(Y|iR6*&)!V+aep0Y}mWK&Hfoe z-go(OqWg3tdVRGenk1T>pVqG)NT&QknYi=<`+w*r{)dtxI8YltAQN)G-cP@kYkN7A zBM2eKU=)OB>OAJN;3PEr!joj^ai_S)h^1OAQ_PqB74*;KXMn2Q1?`yk6;n*X3 zZ`Ejy;ZBr-r49QhYL*Lb{w}y5mcWw-hOzpeG<>VNNS@r+)uXYu2YL6s`IUx!#0N?a&h3fb|2SyN!kE*$rb4%Xs z^MVeSQw|&uCMG-unv2Ova6<-!sS69EfLQ*YK?RyLQ@++5L{OnkmlUiSM-`VonG{p< z{_bwf_}Z_6y5vbLwJGkbC>g1(qAr}N5$?S1PvTrzD+-76nSvSwIusY}Ms==J#8rUg z(@jKQ3h17^J5iR}dUIA{)G5I|Fj>Dh0q1V60NHkvx3k}V%yQUV0KEAwQjRp`m1^7_ zYx3nbt>8_d$s=8tA>5v@=lgBSf!lplLn(hoYw*JJ!80|GB9{7P4RSsSeX3bn5*6_xMNP>&sU8x>Mmf z)89mu*+DZsLE`wxKU+o%eOG9xaNnsu;m1hpQEPJ-a4o|L8E3kt&WSZIV@cEIO~|?X z_8KLzXwefz?OmJI@@@yIYVGeHxQSTy=E_Ita}m&@&tN8ks3H~FhH$`7L&C(U^7REl zPmv*J$Y3)*(k3osWHOA{-E16pGoO)#eS7TjQ+-w1c_D@$)y)d@)un?Z(Kv;p45?8 zd&bvE)xdDWCJ6x(z}cnEgF(;xcH)@SkkH#8?rez}&qz8HoGw`$RF@L4jcege{!eigz|ctQ1G(aFnfOYIP_KIM^&{H*YM&Z zd_lmCK7l+1V}WrLwPX>5FmiGfA&DsS%1A-48w?5s9zx2hWA}{6u;A z=*m=4!$YMvP{CK(!WBC-Um`H2D86-C9WQXPOta!CA3b8g@2(=@8Q7IE?If8jeU1!e z**IeiVL888MwF3E*;_pE#!vjj5e(&&O9vhvV?{yJS4W{&y-C;#3!BYE9&?VNw4<_a zjte+(4WPKgH|B?S@0AEinq)v=AgQFQrLx;^!a@Ot&o8vU6A~?b9XUwYaMYdxG6qcP zaJe4fT9`>v)t>5_%2|C}aE~w!Stdu;-qFMLQ4}}W^^~Zu6k3hkIx&h|r0RW4=D zaGbZfwh?l4Vw9aGE9v^*>{@h=Rd%3)CP*N_Pl~R134&Z#4VejtHcmk$&xl!u;x{vz z1r!TT6i;O*1a%|KEvr$cbPB&n&Djek7yw0GvgPW}wY$e-AQ|C8_MAyP&lfIuNqZ5> z)R|P-o?=&~B;phP-3yn#a(cNk8{Xhi3{yD+rb`wu zUy4HhYRn91jR~K};BJjl z?G1TUvG0kuZ({4;Qp5L=<-`liAwTo~SlEL51(04l|EuSmb}o|JQ~X({i3J%k0<@LV zn@@!ES~Mkbv%y@Tb9bw;QKTy9vqjZZQs{;p2sG2sPq9k7Tst1d(${qpcC{;W=@jLH zzpbvzBHA#Ge5_r}mMD_o${Rr6{yti~VDIi3Fzvu0>xvyBk_M!jUfrtzC|Le3{4h&+ zC+lC&GOdRyJNy;`<0aOmZGEQSsDvQBGxaroG?)e4gOVid}bn3 z3nUWF*!3I(novaX#hH>8>+?L3Vnb1?WR;uU`!6DIm!C@q#i#Q{l7S_4t!67%v*%uT zsui`%21|^oN_}!dX%_7q{31e!V3Q~OkrMKlnbDV-g0W{U0g^rFgp!e0U7~BBpqkLp z7chE%kyguww6p+~F`j{97JbO$3yxF^&{c;Io^Y(n9QA5>I7OZxB_n#-#ovMryj*~B z#ZUV&rE;;vxw+`7R1kRoFbgxR{s|YMVIJi{-z38}s4&)Ch-9IoGg-dzLWMk^1?s*i zqO-lfuW8J>OVs~%{E>oB(;hpENyAf_g|)An&zdZMfum~q?}{k@LH$PA93k3Nnyz!( z9U(8)p4ndo>?{)XHxV5Brkn4I4XfrYy2Nw$1CcV*u&ux|ovcxKYZ8-5KT_b;kk#c`WO>1>3oc>pPNrtN25Br4H)B z!&9huXCs5#j~yGh{>#1B1s$90=U;Pc13&>QW~KcZr6n;kG88_=pd0Qq5KyLl?gtU) z0+&2hDpn1*-YQn2AZcP|T!a*+{A*DoSKsjWsmnCPQgh^Iqvs)**t7xPPHESqk6#WH z!X1jl*wD=R33fCzU*FNH9CpMbTXlU6+3^#PxePL=6Eta51yU)qyc z9ozOUSE6~ZYp4^pfsV+X^E5bzAw_saKCr?><`oDn=j8X)I7r^zpWBjxfHOE6m(C5x zy!v5qU+FSR+PuTc5bD)T+?pp21a_1@83dP^vUnQw_`Reb07D}}NHg3RKqn^}DQOr^ zVyPn%fwKowXBoAloGHGU3nj9pcG!o1voi{SaqKzh%TjKKQEMmozEqPqW+PJ_oxb3U z18OJ-&91fmbjyk{Rl$xO`D8WF9n1TtrK^KPRk}EK#Mv=g$g3!NcceYI)hw?|iygFpya_YldwbN6~X3dj>$&j`Hhy>j(mPeEiw z?B{Kp_n3VR$lAB#xzts~#ZwGTVjbQa4S}Q$yAkP)WBPYInGZ&i2K*}Ir6`T0j~-q= zi4Lps)>r%k3RuP@w8501i>Vh7IJ zdIrEew?+<4KhanJ!Ij?+c8?M;Z3dFCr-F5US!nuGhd{`eD|F>@o4>v(7Uj|@%@Q_D zhhf;^Lu(|mqp~*;t6Tc15$0a6$a@EI4jhYr#|W{+-cx>13z2|=Y2%`i&7HnlG=07} znUD4Lo8#3M!=#6Ik6}P#JQb)S!+CaZK~)51y~wyuh-wSUCBNRw_|pu*%$bHcbVaG& z$`^M362L!9ce+iu@K6#kp-E;evdISgh|aD!I|uAC8nA*#F>G6JRZYwtd8G!w+4+rX zGIBH7(<(E$#+JM5Wu13*@?{)qa^)wD)CS$oSZla}1Ue-U`wvrF70pDPc?fyH*d=C( zXY2NH(2G-P<@#H+T1?xwRZQg;BcUY8P^AMMO_p;pETIzAY*0Ks2Y$miW5ZbIa{ z8O1Ns%%jyERiWTwfPwY~941}Lv?+t&QXBnug`);hOYW^=MiJP{1Ur@)$SNjBYYZSJ zntD*BeH@HSYR-(T{*ItZDoUx%(%85Jyn#IECelhRen>np-=nwVi`rRZ(srNT>e;>A zjj1F7^y?ly`I-DGh?%I~bK^W(;4PT#=%C(yq`Er2TebL+G~$025xd*~$qJ#@J{Z4! zki&L!Lvgco=(zg%bR7D1#j!S0f2W02O>iXxoWW@!U9)BO+eQP7O@Foc4VHm$fS2Iw z)7@f)hrSUJJ6R!o<2iA*>W3XDe8^9&F>P_BG}0?Fu9i6zD*U?h0eq1TaTuBER?J#M zeEj$$Mj9gv>+kgL^9FyfRbn9&^soOfK}2yhLR+OkR|v?eS$F#JdgzLsL>a+Wd;)~@ z8Jgn+HoSz7_hg@GX)y*_tK(u+)3mgcAG`W{sY#+W=(P}KLT~;gj(qII;LmA5fRogm zz}Cb4f9U$EsJ6Oj-Qq<`aVyf|P>Q=2cXxLw?(XjH+TuwB{wAZRe%Sl2KvS{;h!|PxPaSttIPVf=*onglN7N&q-Ao<^2easck^RwX>{0@>*RpG6Lwm6{AoK#r+&DAelrt$#<&xGY)yD^p26g_*F* z{W74@o+=qe$exNkQ_DUfDC+c{G-;*O6xr5(Z4Sx^da@SUIcb<0kM}Aqg#WK2B8>EE zuyfM$Qn#6IP><3ipK>dfLWEQF$$Zj`8>siKk6V>YQj5%dhT4~jd6HW4Unj6VhqXsS zXx4*`NndPNdX5do-PcCpQbH@W?eMC(FhC|tcGy=(c(GjlIq9|9%zwY;PDa+c=GdVZ z)f8VC+{x1x-S8R#oEKg9l8kiqZjc(X{D zNgq|+6YA{b7w3m5{6|VfXh{-XRW{S6JN|NaLU+w+Va)rt3CIkpbrLytY!nTOoW;{% zV~I>(z80UQg`aei%!e@XxjjhA0lO9o@q8CjzG!(TApi+b>0>pHm~+$5z&ygZw6MJG@R6 z@?IXvrIW~U6KQ_`E{mawH&lhI)3~1rGX?C>HRFS9p3X_ko6|ww)UPIHF>dq(m=Qi2 zLi|7qRQYR{e|Fc$B}u<)qbvuTDyC%*t{P_2{<-0pTTWoFrKWU4hcyXJCtl&)qZnpc}*AQymAMwKYS?_CS(_WMlFK>|aH1 zvSapbmeYnuz`g#07e}_NtNK}2Vx?ln{%SY~N~RSz`8K-Y$JO$e+$#4Yfoq}!<$HMQ zUQ$nf(X&?sbJ}0ngz3fNfQz}1ZCa)@a zp4n{zJEs)H_nq$uY=sU!G*T(5pi`lFHX&uLe}PlxB>y#MH->Y`7nBV=WzWV#&Xub& zGP`)8<6rn2zaFD@9|0SY%7Li+iyxZ$jZt#J4H*esOqc@wuhjoQI-lk$wSC@R^z|mW zJ<|$+5qR?B45${4S3YZwEIFr)1X1Gdnd6R39_**0(&r?cNPy;fSh zTWnuwpL4$iFAhFZ+NcaQr4|<B{Wn-$nTDp|(uQ^5*uQ=5eRFgEEq!~A`iVeo)RI7(-Nq`z|J9&gh+h#? zx3jyMsy99ltdVj4vuTY%+E1Dnj{{(mezs1CSb~kUWykw7xu?wktyj(}!kN8KVy1NN z=&rsOmf`%NqalYfPk*X?!*GL2;gICWHscn!FkmLF3cJ4MKx_FJA7!qUrCll&HmV|A5t}rf%_>W1 zB-j=`>S#)>B|!t_FMrkOyFmN>mAvWUeeURYucaO4pwY<(q>|U{vOSD(J3Acrm;?VB z%`{cDqG@H@A4qA-WApT9&hfqhXkOYdE>catW@+81%BRGr+&w66#)KBo8M*Bq{hf09 zBT}MpVCm{P8)0l?cgMH^C*!(3d$>JTLtT~o;len)zaj2>sox!I?ztW-2?US`P9wN( zjNDU8-1^EY9bHXLxg;cJM5wI?YPeV_yB&0(AHr3(>8KJ&Z}N8q5-H{iRvlDC(&5mX z;I!3DR92$CNfmm!g8sxx7?NS8cHw1mKgOR2$axFL3{xcArEI^(x?q55JGwf}SXE-^ z(gst}Vd+7m6A|LhytyGPaG>^L!A+B0x}YcXz}M?HeH7!MFHT~Q>;Lfo>p8zOBjP%qjr$OHK)9|1jWcmT{b3LvOx= zukvMUl0e5MUvh>BG3U;_Y&7Is>oCnI8TUNLaIS1yB!!E1wxM_>mx4c}nA9UO+;eZn z&e#=6As7xoaC=_5pH&L{=UF2qn{!ZJOp6FMbN*34Bq~?TuoilAIjuD_V82 zjaNy3i6*U{TJYsq z?Eo>gvcw6lTOtiHrxROwg@;R)bl(r_u5Qp0ec<4l$Y*KM_OVr_S=8o!KP62Z_kQ;` z3svgdRfp3*DKVvART{({%i$ofm78B&n{%*L)6m@6H~CRc2vCxEEYNx*=t+rx zD7?we!z1G%f+)eU;G!F5j#18-s=1wn71wl3GHzFe)>X|yG^+`Gp3ZpOj}1u)1eW(| z-6c_V=<@mdz9&Zj)5DpzMYSSC?ATN4JNhjPWmx4XGluL52M~&}UQ_0FaQP=Oxzohk zA+S#O>X}{}N|QN+vJUtdolqM=X7uZb>$5wln+~!WyZhf?Jw1)P`gc7c2EN+G5EA~ zTG0yc#6q(3xjIgl6@yOSYnm@`-SPkM(TjLM1_k*rSA&k6^@x2f_{yhDUf$hwebWH! z>8mqVYx+BTPbNHAX&^9bHBbI=5)-`&W8=F_IEgN7ag-AK3!O7!v%VT zTjE)yLO(Wk#|?OZ9-Iq7aOS9?B#F`-mmXdTB19=j_XSo7MkSKGDg7LTnTZ_4GWgiC zlBS&GV-cgPaij}s2|8vWyROJZ(fmpkS661T>P#|dOEi@Edull*&PsQg&3Rl?(^Etv z#Q_k?q7aA-=h)R%V|?LVo(FLqM$D9Ol0Li|YB#b_b(wWN3-jUqFf~Eet{dpwbBc0t z<|AD&AwC66>N}_-V|YjH06c-((Zxe{vYR63=g`qclS2!^!EFZevQ;M zL+O$*Omv9A8h?44TJKrkw||#nIpnR)TYoUaqN0U2Ns|jza%CsvRC%nZ(8MO`a*3=| zo%l2)IG+FSnB|%$9pC|JLPq3E+}W`d|OV87yQ^r5?{+~Ney+KiXb8yaz#~j zXE7u%0AtaBU-`5=J+t}iG)VA;yZn-V{KUCKDz%dt{8~Xd%SATs(eZMBLCoFJI_bIC zSd3twQMJyruD&;hOR*XBQ@3`Top01iTb8NfNEyZTTjL`%KET$BtEvBSirFelvwdM@ zKp15hWi8(rtZ_=+&*o{=If#2zLQIPhDMXxOr%h681wtJxan)1_Zm7wVf88?SSQcU`XN3#GHN+*b@aJsAB4 zG6`^M8=SU2`0l9to)a9c^tbo1NhxG`o8jARH4atDSFBKg_kp~K;_`2Z5*o( zk2~A(zRIuvUkfl(&d#jU+HUgCwkdfG=Y8aEb}&&K)_8_gT84}(YSUayb%Kw7Yue1Z zsNZ)R=CR{Nf)sE6MG#GXI=rZzx>N~v^A*Q*gg(5Rs)5qS0V>NN4X zMhb=2L8)}0-tj1Eot}K=eFadi;!qk_@_91S;OC!}g4WJJ@hD$^p2na}4ez3MzcVg#O?hc?I^tSE ztTp<($fK*HYi7&A@sBpWX8N=%NV;KV$n>v#FpkpH90-~8{9=Yt+nJ<}siLX2X9;-v zn_VU9&!bRcB4%s%$oT9t5DLG_Vzh<%NcCY+efiuXLFgZE(d zVq=UxCluAP+Jv11z$n!p^6pdKs<*f>>Yjv#>$fH;YPO`l(tpIBK8zdJ;5@H*6!o^H zmbPZm&!oi$ELZ1e_w;ED%z4tDiDeQ!8O!wMiQ8_RIU`eb_nU!Xi=V)(0y_G-RNYuv zQ=NGy`erjo`|5Goby_Nah*{N#1@X^)TH9&JbFvay(k4eNRw`6lzj%2nHO&s1{kht| z&7z)-QwZO&7GkdGU0>@^H#!G6H232WQIJu+yDD}LZ{V(lmp6c$PD8JThP z_*ah1B!ycwC30)SR4fT+;ZqUJ<4j$uCWE|K;(Drp0aC zkzY&dfBDunXO7x^%1vh+_`vn+fxeoOzxxrUp>qv%A9Uxm^!bsKar z9cdkI`-kcVix!!6+0~0^(o+rT&c^qC@}ST3aM~R+TVQS$^OO_|sfQisr(IXR zp=xg^aEv;8LW&ZMHCk3{P<%SicqJ7(#a(gwJx}ia#)*fGMl1{{4Yo32&i&l@J9=R+ zH7*q%8S_c#n9?;@pkj^~?er^|@!QR~@!{6V^uyFo7A*HX8x({-alm#(ClUsDl_5TGd*3{}0}sJ$ukC6)8F-1)rCzgy+}!(h=9E z;VAvFX~|4=-OiBDv63l<<{%Kfe@vx0MaRN7GGnW(uzq#XP!_mB3C?L-&c<|wMnH4K z>P5=$s+n3>AJ_h!GogXk=(;mPCJXjI;X7Z0M32D4Ns6r-e|H_&bgbh-y&^gh^@}$Z zcv~#y*~sz99^Ib|uiDh>r(D_1awhAO*Oz+1w_tN{i zx|@S!m-0d#XYKJ~dWxQcA)f~v3$&U;fk%BdO{xs|ZLO^)f&@`GX-t24h(Cl=VH0o= z$4fS&hD0gQZ8g=|+OQckkK5vAegvGlzl4XFX)=53C)YYx3S zX4;Yrinm?5XR-g?mqh>1ed(IbwMPn}n@L0$^d} zOuTUJMaW(~V$dLcvLMTwQk4^c%wS+MokZFlkhEB^)zY!Nyg}KWZf46h1EO6MS-*m; z-&d|7)>-b zHYcvrkqW`?=C1DXk{p1>Mh0-NO#1e{Kzi@Ez@ioS2Gcan|gmx>(+|N2I z{GA3tlg#;ObU9<@2MQwjj>_u)=+7mIQHJ!&!d zl5oiM6(@!XOP(4D*Hn<~>e74s=oL;#)zRtt%IqG0Cc=je^^rK+P@N$|hJ^_?UgCTD zjdCQ83hE`-F{bm9P^bSjP3%Jd%Usv#kuA4g_6J&~*pLkS%+nPTqaJ7f7??y>`=CN_ zV*{31=nXkWH#?HlD#9k)XG#maPr}ow>@(AA2zQRZJhTWd1Ub2$%tirIvUK{ zXf0~5SNU;G>VJNXJs$Hf*L`DR23cQf?!6x89vXy40BM#XWh5B05UxWHdV~CuI}}*U zq%$J?RX2|V#XRM*U53`P1ht0X+W^vyBflONHv9jMateibqe;P8l1a>Mbx`#yUSS)fw zke{zcsQA0j(LubYj?cfaUX;Q->*6Q(1}xlEd>Ne!rsqy-h=jvfnwBN#Nog}CO*k3i z^|+2MbJ6LXk>Ia#+@P_GUPVOiIcCUS2pMu^lyt|BGd)1?{rMpHe18{R&9a~i`Of*o@ z_8YRm>tqEqH#$D{qvZ3`br5l~@f*+EThuDVDXHY@{lh?zEHufn@-@H^?mth6h;GOm zmj5Vpn?ks}iN1t8PCMpfiL)EAa7Q1f3nj0>QChJ5BK>U3r})-yTHHJ>ImSj( zE=$A;bn`1893`l)D3bdySC)kpKt!xSyS8EIdI=757kN0v^!)32DHW>G@!?JwtwM*eXnpc- z5t9vE=&DCtg<}v z_6(0ggo}jz&1`?ivNFVq_L;HD1QWzaEG-9wOj_=M!I4_cLys$oOp}C`&+Dp5c_;FT z!si1rRHV7q4sPhmy^{lTADlM328wl1y~R%LFB+5Oiis0!8V3|57sAC)a+91Q%oPS4 z+yH+Y<>+xzUvz*`)-cBjK*H>AcP0JouhMF9ax|VsH+x~)cUCxI%e^vWBdZL(+AYfi zJ7|FB>r_6tyzrek)QAqj0=bM`|5z0ZrMn+75kUXf)TS39+ORL=6-9(j-SBZS9mDY2 zgnW&CUff5bAwpt~9tR0&E~hDMN+OO60d(YPs*qOPtkRYzCE@?Po` z*G$;0x0^gQo@F50w~%7e04(Net+hZKob=4OfW-triry(rE2FC>p@cE-~^c2if5!GH;}I zoUI1w5D~QQz=u3za}6sODOEL=rnu-duhBnNM$8aJOHVF!#a2q;1`%8J@**;ZE48BW zGwB`F1*Nc>8aHxRpVQbJo6ic2O^DpM3ARYhJfCr5c3_#HdI|2*2y%PYiT8IuG>_>S zm*Q#H2=bVyKhoi5cR98nC#%&BIxr9KEPP`Q%URgd+|IF-iew9`4Bt#=NHjeh*?#wcMAcxMNKa5$N~ya*09^$z-S!Hk$0)H1u@QU83#)W?x;>SvT=9$B!GQMeocjK+dAGcGYzb za3cgdO5)okb#bFSQSk8#iWZRMC;@HDLzhi@f3T-TPc=0+g{@m2z*1fUYsQBjxzG7T zs5p!LX>w|T$@Yd~Vrluw50lhN84cZN|Of0Gn^KG3Is$a7J zd8hu6JrJTf8wNqdOy%_43z;>F-%T#rKD?<>=L3#1{e;B3Uq)%;ak!4Ig!DTM`g#3( zEup}(RJ&~W#b`j-Pp`xgF`TqX_P9{AVeOXjf@m2`DWi=0H-!GUZ0vu;|V!nB#uW%vUOapfU%MxY<8782_3*7{j!1+I8MBl_Gm@5Js*rY@af%NeoHdr1B4q#0l2qeq10U~$hJ&7f(;k<%plji> zP4)ltb0vb=9rz-T+GrJ09pvE?6Ev=Ow*2-QL=oFZuRKV@G-p+@yFI(@9FIYYG3#;P7C7R0`Fbd*w(RAh0gpjxqnLF?~H zC?L=gPDsewdg@M#K%6mARH()vXwH*s$>}6qU^SB6G$(%UKRt0A?HLityOb%R6`PQs{u zPL8%_V90iO$0~biX)4qtXXWvs1B4`%a4=gEPqSf6Nc3T-k%FmEPTg*yt(~_-ugZi& z;9)zifhHXHyg7z{S1EYv;nlqz(FZpGC@43i2D|6ZvPxFodY6P&jxTYW*iqPwdB0TO;Ni^_9%xb zF;_mxSNw#UtKk(x=wVE}XI_TXZO)MnO|F9JJ(T8M{+Q-)eY}+sDFs{3ccz?7k)7+u zT^GsLeyK3>1icto+)MlV7j@u>GVGP0?K=-q7Ct^9od0hg>#N#UQfPzm^A!cnUv@?* ziPb+g&Z!ja5Z;p(HW|XDkC?13?Tmr8jN?@_P#i;(CO7*(RZ>B`KaCn(U3?|ZUa>o7 z#Q57}m@-l^3+0YbEsN!bvqVT!?1G8~U%`OSRDJ`V6m#>z_*8HeQFV0=+smA|arBiG zYIT~UWE5(C-Y}pKkg5BnyHmn?_Fxx^TlPfBT>>M$A~Tx5ks1+FNtW;(kBlrXfQd5! zAwcK+$t)H?R2YUTakcmrp>_Tlnb`scq5(M!SI>-ij%a*`OYuvDdh7D)cv2fSw3gGE z@AUVsIAHl_T2fyOxluauI!d(~iE5>W=1>!Sb86NYnA5UOR|uq{h!t~Yv9L$IF524K zvBSk}nZFL=BPap;x3`O#MtStX`^WjC-_7mJwfj52;I@ZhX0_omV@|7R;JW?dJrT&$ z5yEtIWaeGj%-Z^j6W#c-UB(0?ocao(j}`v=%Q=4Cpz#e%6&Vu}OgEB?Xy<5~L3sS*mus|J@T6;-4USUnqpfsrgzO?Qm>&iz3Lz!Ujc;)o-iyU;RXr|IV zwbFNHt_y%wFs;{^JF6*QN1`q>nJp)yC7L$h8Z*yzjt5M9LZu1~@)JLY1{>8(8t@J+ z#(@yUOjD>{5xg_WjH}14cM9TZBlovk4Fhc#iV=;$5;$3i#vCXW-tpF#KR%D2DJR|A zaOs6_7q11P6tU1pp&{4tPe<70D}D5I3Jz>x0RM4f4h1?^Xfnf0i898#-R0`UVSlp~ z8`q2mMe4LT>ZDK=HBpDvc{_^*?8^td=S%c_x2|r|!7^!k_wa#j5^Y`H^>&Oq;AA~W zOw*3}N&&e#a8UW}{KEb6R{MswY*X{UzeaEPNUyxm$BH6(6Pj&F_N&ThXfdxt!4$zK zpzNQ^Fxk0Lre~=5ngeqCVD--FfpwR0Zaj}rR$(izP`Q4c2~V~x4M9w)+RX>`YM|c) zZh{15f|p}rckw7vSN{tcUC|x!J#znG*nmZ*yg!R^7j3FuI!xj~rp_chc023|h@7*x zGIx*{tGsI+A5PkY8FGFT*VbBtM(Q2RZut-GsFtHV0%g;g@kc6}F7js{82Z^ei!KaJB=~A9S zhrh5;$cGyo9emp3Y`w0Lg;8uc>+FSFvU1E4CKbZq%k_Jwwo&5}B87fwy1p!3xR#lz zS=Y$Zeg0V43~VKj%2A-0b}yAcw*=qo=nP%Gl3Vs~tT^UIMzkd%PiB@xzO~gf>>e9> zW-^UmI?!v@5NE6(H^^l54Q{7hZ_%27ZI1_Cd}h8P`Sx)BX5^ziCOB+O&RnbM4~prl zAE~KNH5e^8@}LLBHvL>Y$EiKSJ2!_!ktA$Ep=ayb?97aEhr>JM598>_b<9V5_-lQ^ zokHx5J^?h~DE@pb^zh}SWl@e#ZEam({-C}}5i|b9-?&bZ>^57*;>3qF zwmERNg)frzcY_MK8nx2oo^(L};1xe@M*_rR;$;%QZ71NdKp3zD|4EB@F(T3SP|u!@AnBGd(y@fN1D*N#eE-^;TLef1wHtZS?#j-DO0TDI-f) zI)0YsUJI&(JUfT2pZDXV&HY%U`RRrds^h>-QbyT!?Z*ECKs4S)wIxVw&`CdCX*cjV zZLXP3;N~gnKS6(i^GE%s>(hN87Rr(Vle+k`g$-`HBROL@rD{W`M} zt0ioSYjk)x-&d#<_1}J|KtZYON_qZ9IYe~zu)ORe>HHQfIe>P49EY6 zyCmL~K`5!N@(AurFME0smCo#slN7BO4cWv`4uiF97i?c6yhzD={%8vmX3ZU3stC{9 zzK>nyu=z8>>@=d2@BI7aA0KTd&Ij`dZ)Z`@M5JQ3_;PXN9XOsWKB)rXZhY>J6Uy_XltlQ<54V&H<#lDjzB!!fEzV(EF#(+&S;mJX3)!*FhVlZBUuL-E@5522%MZx~dw z4vTA|x+3Jmn;aP@bdo90{M|~b@P}>hK)Ub(y)n(s@k_)g?D2ED3XRL9&MwG1sH5&$ zp4JKFxOxkz?*0#g!US0$ww1F+!ZYrmzU4mQl8s~?3nTt+!C!nB@a3c0c{c2Maxz*z zfj@OxX^G;^04qN@$7V(OvS9KuC4%uc6%ZZT0njow$t!<6u>l#fOPO z)BkOnd9}JAhyGcCF>bMf2f>VKVwXKDpbRw*ZGmB*ZPRQO{vLbHJ7aQV z6M~{b+sfjO3$Ri@o~$2x3rC3dOL#~r+TvB^L8!} zdCM$Z6IFNXkg2Vmv+^w-1J`z)pAO||&3J8Va6->FCu8!1Jsb-{`5zRA8tani6_ zCv^KmNL%oq!zy*K2CnKbIiWQQ={ec9ihcOATdmWXiN`9vFySFrhlSQ61o4HQHVv_u zavyZz(b_h~=6FBC+yF*J%=tM(0ZZ%dO72x0L@)2+VxC5@$Gswzg*AQZUT{i@+;KBPfYEYyOa_wfNhoKtY8; z2===RRDH1w)kkprta&92|Vj=q{ zZ{bw*pEGE)cv+?}+uB-tD;YceZ;{ZCXkh9Zbq5Imbg;zPUousKfPgJmv2j(d6H{-J zw&kEAJLF*=huJvz*P(AshIi{2_9e0mQ{As6dzf9)@rn;qq+6O;lpfFQK8^(vVO|MO zKkoXJQ=>KrUjsxbJV%EHh~_Kt-1_DmN$_^Fw<5r(JM;-;Mu}$?CY8*%kE9g-#dF74 zMam=4G7%!NIod|+^P^XSy!8kHtm5_hnQG7_G*suzahbu>#bw9>u_Wf5v6=lGy_2<` zd*L#ZI|j|#fuc$I|_T$wzGFLM8fj%gMTTC#Og6!`R2Lo=;QNaXvsu%jlRd_GVfnLDFb zlsg!eF#EHiE1M%S5M#SBma@QnTfH@qocw}!?XC9@SHHDanxXChVbUzQ#}7dQ=bW>N z3U(qgrAUmu{*8q_8f`khKM+L8U>2Z)t!c{Mf`_0B;I$%vxv%G7Yrt;ok5n2fF9gz2 zertvXriIzM(R8}&8#s#`S3Fty6lAiW2|h^qKpxTkAy|yKM@wyA*I-Ne?B~Oq>*HJP zaGYxeh2qNqnU}WSJqY$ugeF0j7I7{qxMl zwd-&f>5s#ShB70gX*sNY?wxc!hdZGIBQs#+fXQEd24Vce=5|=p8wBc4B>Aew`^*W( zJ8|_XG+!#LQ$Sl{lQREz;anhcaCM3|#L7cx?RL+#A(I@#ZT1h>@;S@q1$8<8@DOG> z=j31KZd+q}i2E8@fL&#gyHMwWN-c?!C1gwt`$hlivKpxDB&)xCpv!GhGP%U?mJGnoI z|9;ki2UZN&`fOV3SrKlfoyA9M4l!7yR>2JxWGAF-&Iej>%sFV~#M6cs%fbkDWXWJ2 z)!NNpnt_yF?t>;j0m)NXh6<+Ft<*L}(MS`&-Wf|yeZ2ee7kS&He>(7vBk(qF^R)wJ z?l^{K-Eo&~QvCNWC1Uu$cfZ?J<7u>Uy4-lCDc^1@X56+dx}Svo=^Sy&lik8!n+c1W zSSIpKis|*!o$jTC&>{qfDMZYOzrysiT8rE+kzs%QzU2Z@Ix#=SxDxZ&B>d+?iS(%n%GAzXAlaZ?Qu$ZcuTD#?yHG3#HqEM;g!AjJ6?n63i?Ch6h z=w>ard3x)eJp&b9Pf4Tt2A>T=*LjN3$Kq(sa}k)Y`R+tIhq<|MuEJpqseC9p$0b)G z20gxGDT0lUi{ZuvKsH4QVB0m=((^~t^LU3EEq~+Y zvT5|Q=e2Qj?UX*>#f$43GN2!7e`m~%d*1?5K*r_6+PZ2hE0L98mCSiFS=u{2443ty zFUiB~aU#$q`_tCV`=v-AYpTYZ31%e%wLTlEXtWn(o-*R1r^;8=#;e4(>Q{iaPoKlb z*O1Z*htzCkJ@Y94juI6%w2V6BzCnz8$wTaah%ah-WjW-cJmi-XGxaz!t2 z8#Y;pP(6e^`WA|@#0KTffG}0{Xo&;e)pZ~bp=1h(?`us~T-AVZonDMyS@`PCux-;^ zZ6*=slLTR=3)*m2@y}=+UoaGhRZr8$yA}LwQ{>noZ_ruZSOY~6)otB$1Tk!E$_!_% z6PAJ;WKl9%@CHmc=V}RHn#!Mw3GoZM`OBq5sMAQgWA!qZ3y$eCQs$vEl5I>32EWWA zuc9=EYnpJ8!%(kdIIqn<_wHeJy)?1Ki%P#H#--shE)c|;?O(va?gQrrHO}_K-W#0gQ7b?6`E*8(!?VzZBL$3gJ=m(yJK#PHzKrf60X zE=`BaB6ih2#B_;GhfvsUlOnE|B!U)!+>zO5 z%s5Tf2}jv7d!!+WA)^SI74#ZpIVitSj&m9Fc@T`w z%5HlTNmf6d)QT@3otq*d2pl@MBNgs22sm}mH8@aWQ=TkU(`}ssj z0xs2p8}=;m@{l|POCO&{<_5l9Uo*66(Icu!&a1YP3pnsunP_5AXKMZSeTfH-h(4sK zy~^=-Z;zjtH2wP&b1;lA?X+1O?bzlW3R8m$zGBgWDRJvr!c;wL5~QhYGw4WeaWJz! zRjfA_l%aOABZ;r$#3`}T9#nwpk^kRwRu+6;MtZ=8j146ux;FZqyN{RbzbM$x%N zTh}^8G01VYQrr1y@UbjT4^o(xCSH!57O#>>$Ea13@|~65m_n-~LuwDTd6SN5JM%S} zsfV!Ff%ka)qJV;oom3$jwNC8^aX~@gIW#vOg_BWI2{FCiO9k(f$kXyBq-OI~%FF-d zwp01&UgN(33T3S=5k%vw+=`}+`sE%?(dJS&2?-+W!iMRB!&JAJi?@?A?4MHKS;3f} z6lwqXIh;FQ@7`fL$16%aixPkqeYGnlGc|D%M-*^js0<=IkW=g>8EV;T{90pTe&1C!7>M5D5@Sd7NR z0w&GOequ6c7cK?eXNuM(jME#4=TQSK&j@HEQTKdv!aiQmZ>;SAmPVPabqowGP3B8+ zYt_7mB4hS|7nCC>igJ4=SSaFD}f166~oa_j`oUV(euImlkYAD^zF38?iFN z(v>MDk>pv*9u$Kli?5 zn0K45E`bq~yOfM;QvIq{;ZGf%^uBo^b-~vA!eZ{`3B)%f1_iNuLk!CqiuQpN<`C$O zoc=up=78dQf#zRK4y zF*p1J(Ha;Q$lot}Q|li%>pOI=1OWYQvC{^IbmqJRnPj}Qx-?P{FpOUgMZl;?us2B? zuSkh{9WGk9&&vYne@u{`Eu#Z3_;eJ)zv4{;g-6fx8Z7M9TM6|G`00jG@R*%`GjPMq zCX|^<=8d|<=qO(zVGu{i#d z{M{H@ClgMRaPLiyZJnwxy zm)&w;QIT4H?R~~XN;|vDjf>d3N(MsqXlMJptxF%2Fqh5Kd?L11xxpQo$x>$9^uVDnws$mvlLXe zFMeRO@Qo@%QdR<&2Uz6{`9qhR5GYUog?yg7ywTKrgTQg)`v*`@Vd9&FHK7;*(@XO5 zJDizMM1=8Q3mzXrVe?(HvYn6Fs}&b_KmKzNq?``{?3u4oq|qc;=KS8f6PwP3e^PF= z$Mp5XG8U42r@g@@$U{&Nf0q+2&D@I3x=h3XD)wH$Rq$`Cyew2gq?R_Wp}muLo=kg| zJEjVopiUi>ie=QGqOVl$nHu>((pV{8Mo~+b=szl9qSVz=AJgNQcG{rPJiIupFrFzX zC0r+5aR0OrbixU&zxZ?BBHKuaMuuC}q-V17Vj0JH3FiGye17hq)H(g9PqMOr&sCbo zkMkt`UtN4N|7ekYEovghYMdjsyz2~NRGQU$Q|D;wGIz-E!Q^W=+HwuEAIoT{@828Y zt~T`Po&M8BbmG-ur6GhB2Vmd@Um-KIa#CB5DHbCW;&C?9ftnBZ_rt>S^5DfE@_)oh zLB;i7fe@{X7tf;dLimLQZJiyd2Yjh&x^Br^p@h9LB+m(+8wb@t!;*8zcA@;F4q6CE z7{S~}JGb)nq+Zf5V3(p)*LEv0eZKK{K^y%VTYDr2@Zr;h*pP2z!cyp+{!^5F$AdUx zYtE-1Ls>597ND92=SgosB`XIP5R~@R)aW$oR7*p4c z=>8jIY_bv|v>9nndV!^nEbUvZYUPPy@xLN|klB>3@ez=+?KT5L? zk57HsBER?Of<-~**^?5fE?={({MH;X7X@Z1g+V;)+3bBtqN?NZ;^#&%ta^>SC?UeznqV0PVl^v%_DGoS*uu6;wYUP+He|%UrN7bMA zWcC=*%ooV-RItN7#IsEMw!$mls2`tFN2_6+8pfXnro3D^z38voB?v5ujoAzt& z0P+yPR>u?i%NPLu$(|F~J-Nzs*2>0%xGT|Dc#DcbPU(X#WlF`LzEgz8@NZHve5H|2{ik`YzqVUd~@OEhH;_C8Ui~R2}8rM<%G5F$0^7@v)Jx-|>lOH#< z;@b;jlc4zBA=+$HoJ)Jm%pEZD{#?kQ=BvX9M0|hJlYy8JTa~aAn_DCGFNeF2FQj!( zU1#)fwFTDbf@c1Ap3?7!&Pzatwe2oCwlq# z__WA(gH`7QjBC_xXV~c@y587W^!a&0!r@;Tc?BgF;jk}Tx-F4R#%)-+_BlQCTQH_& zMx3|v`AX*jhRr(P5~R%lj4U1jL_i?)Y+uHnI%Ay>xj^<>f`c868Xomd!2K z@7j3L# z&vTX#BnAavqt&*_aF|!w0)oa3f!XoWqT=jU?;B$5HmIXtE(jqe4%88!R2NWq8p7Y;FWGAU*QzlaynR%3@vY0{EOc4!^Sf+kf{A zgXPl+J`h3(ZGBxZF(V@hr~llD)n7{@kdX*5jv?<(>bM*mAg+%Bm-S0~-|8J>{-26H zV&5jieIGl2TrYy>?sxJ$TT>JNT-4xc2q@e79wk;M{hQ6t7@#+mF8$K`QjrT2EN`f9Pw=8{&JHrsu~sOtoZwr}crcA}>Z?5F7-yyc21|JZM*VSpDxEn8#B z>X#Fy?`3W6f%jrWyW$i574a(k>X6W4th;|5_m|}(T4xWf4u<8Cj9`V*{TRdUEH$XlGDkD!i7zBxeD8#kejVX*rMG(uE!sc{58ld&(bO&gbF@Ay(^^#q}jV!41EB4 zXJd6@ECk*HPKOOCwRk}{i{%c~*|>ob3&u;`Q~TJFmTB&i6}j0_3?&qaF^0V~v0#UCkJWR}5e2>xjUQWNt~5p`1-A~1_V9p6RZ7ok7esM zJv1LLr6Aq^a4GO_Ou`$Z7&X;8@6ltpxo_GEhjxy}r2i6MFI4S#1R^%Tq1a%>u;0-4 zxdnh?3mzL!fBbQUTiniYQd44gniW)78REODdf;IE-U7O@FLMtg)$vXl>;IkF6+Q#-jX|f%x819=bhqW)_e=Rx0xonb?#6sfX zLIyK+rnVoya!aA*&9fHAZ1#Q=Z0WzGLK#kr)l$bNMMm8wx+8dMn$1Sp1H8~f-O<9W z2xnjAmwq`952d^|}@fv9qEaDuiK$(A0M zPApE3;hvBXi8)hAM3^*Yx88J4#KGFQMWamU4XZIm zn9DH~n2%_4bIl@RBG1MStfapDkrPG!n6}gCONws&pi|9XROVBA{z$}x5@FdFBov~X zxX0HS5{p$=teQjxtN+$s`{MkKiAJws7P5R~Ak~k1;en%> z@;6mmt?-IBKWsdF7?dMCOmUI|8Np!Y+Vd;MeWLi%)MGKj>4ejdIN{v436H&nFfk}@&GP9Y5yP=V{% z9C$F6Ir^wjHKw4XOj|T`h8;+4MDnu52PY%ryO%SbU;$0ptVUgm`o=znbto;|s6n`0 z4_j;xaOv2gzHv+MDpl8XMR~gSa??pYmx*!X@rsx+Tgr(p7F)&t>aZ2fQV_>!OooYK z=Jb+j%Pg)WZ#)#~W{nJP(Ox~J91g6DibHbbcigkerK0_7i!m*UPe{WAbOeu>+c(Y) zh-Vwn*;}P+akuy#pKcQ~l`{)jJd(0g7`eBZSIj=wEIT&v2lda4V)RCqOyuev50~5? zAD3jnu9__X8HjEqlH2V-^0=ze29b`SE1noQ+QG?rrT8`x7&Xb&L*Z}s=y zi)Kg`bTbeWEQ~HSwtVZH{K5X<9&IB!Y-G4Zj2Z2XVP6ILek1O$ib+^Dkn+Zp%y+^` zGPS*{rw1o{-*^y##G;m{Xm&wsL#Gs_<2b2?kzm2_)FvuW?fs>s^nho%uA8DHa#Dq_ z*i*O&^O?XDk(0F4^Y7L#TBHOQt0hH5#R=Smv2-Qv>OwGYMlp%kP?>|d{vo8C#zz`b z2zlYO$qtH6wYen&pR5(72=zr^Dn1TFkqo!aw;4j7r5ReKCl3HcMMY>$=)1-;+zIo6zQ6=hN!5O78y+ zi2m2HMd8x!ldA4(sm_oA$%BYsyj>MZe;r^8OHSK2ozoX#E5?+P2Ls=A(1*nG-0Fu1 z(u?+D-7HEn{;=$O+S+^4_ceGO;%cp$_kP;TGBJ)OBlNnjnyFa7y26*WY`57}v*v57 zV~SU+tM7~ppENXf#k?f;3Fkx{&+a(T{J^Cb#I}TM6Y%(DF9cj;f4{@Q66dz(wy(Xv z;FX&s)frQ%GwU83BO6u=HM^ zjEPR8EqCB!*8|b06UC$wEyIDna8o1J$c{$G8(>}Tz{%rMsH(yjb<~2Oze3grTR`_` z?Q)E@uSa0cPiPe=;CMY}C$XP|pBd8?+8k-0W>8EkTIk5N90MtG00`xGsR_$; z8{LpgHXB<8#TV6yPrL~2r{AvdPilqf1MF_>v#X z2`>lBKdxWAG6dz|5CD#kSOWaU$%a4XjEhJq#5jv5mqcQIBTshl0E++3=~l@Cddg3k_>{4fU(I z_lL*r$|6Sn3;i4x`*wiar_@kzP{r#d zvCXu#J3%mJJNg@)g4oPEhU-J^PFq;GHwGwPG2Rs$kmwT7n-2PBRQ zpg?VGIGymM!%V>Xz~ho14;A081Gd6VLczLQND;uY>$UQoLRdDuMJi zaLRN_T@A$vm`BkL-wc?`afyxCL216cH^TiK`WKXF8XG3#cT0*4>|Z@-uJ~AwE4yr* zl?RiAm5r~PK1>MTx7Q9)5WskD529rtcxE=;Q_Dy@MX z(6ts_?qZ!?oT6{ZCPxlbZ7^_}clQWMjGRAN7uAiD3vreYh*tvP4x5o%J{~sa(#RXntE^J8Y5?tyTTFHi9M=L+_hL@pa`6WuH+?7!{^YxF zcK?{&ow=pdFBx|9QHT@*O|gT{mrs~-Vbg--dq)3|^EXG1dqInfz4@s0*Dp~91B#&o z#Hku|au{!hUVYipoK=(*dboivR^GF95DT`XU4CN3DR=S0u$9!17xgt>b z3u+4MSh*hJYLF98?|$dZ5=A4F&n}@rES2jZ=G4+E4IO^OIj)V5wp{>SVFXSjFXa&A z<^hTfd2D?_)cTg4cHCdSe;Rt1Af+h34xh-Tr_P+KZLh=AUl1yWe3u0rw%e|28l09e z-_u=xPHm{1`@wptX~dY8m20YG=bw1V8tZI|h5Z7Bui+t0r>)|s&{ktM(Klwd*5yze z8|=C|x?N(){W1E#<5#D!%5j(#q6u=-D2|&slE!Ewm~I$xkHJ|8Fsk^1vVp`uG|ReY zVM$h~4)r{{e4djNOGr|3B#I*2L;}EhLJF$o#!$2`tu-!eqT+Gnx)vN^X=AK~L3Q=D zQ8!~myUNT!j>=1!E0R?>=m||(N?2Yjrt0V;?yDPlnTp0wQgZ*GlXr~%I*fG_XmicK zV9bdusl`)wf($kFSBm*X_Vn&dgX`Q_v=y@H&W@|+lk%$Gsop!Lm<$Y zI?U~IA=M$(eW0%h270k>5D*~5$>HLmH#Z-Jbr>;MS?1;oY@9rp zvfqP0OrXpcS|~E@wqbnorv%I+u&%uxGCAy#uNDv#5CiMMgOoby;draULxlOX%cqdg z5p6;wJ1Vya1b2U1RAUPON3QrCh7h#e8?P;I^QL7_C%yfh<8vT5BF{xNH>GAdFnPVj`7=h)HsS7Om@}ZF3U18bI>@hC= zk8(?Es!gwz`DLP#xW`-FpKfn4K0@y*Xnq*yzaP9h-&sCYCtEU;2A`*4qSPKnO z65YcP1BWw*-s6RwR(8Ex*M2blk9R(;@RK*|vOVuYb7LPg4k=+wo~O-+S2jEv(@bL$ zb=9uS#7B7q=^*bJ83DP~we=O60@cbUQXiZ;t<zObR=TX+AK zgz1jp7XJPDcDWS-l#(ntwrXx+SxmND)JLD80uWHJ0(7v zsBd+*_(CdJ4`Q9+sqX9wic)e8E8qTd@FBN=8FooivmQ+_Ie{jTFW09e7rzAk)P8gJ zyhR6-)smJ0^=W2iVSNIDZ9_>$Zjvc&U41#@U1|+;QEL?4y;FP|Tu?)Pd-qTu$Y~v& zj-HT;AN>R)+pSifAqh#de|x907;WF-6rb#H_7R_A=TitysTsOLU*y;|_mOEnXaSc8?RQuhZi$HR<#g;T{@o z$`$G137RymC{F5r_dD(tYh*(tquPT=qMnczVzwXN_iXA~l9n;AcVYn`yET;L?-!8R zF<;~V13q z_ej{ZS%Tbfl4Qb7JcwvxVv3NY_L&*$c(;asIVYUVRY=&nyjo8v*!*;}_7I6-xpsG2o&UdG%>H-%U=6d= z;YZ2J`YeSuvQ;h3=LwsK4XF3ob+Um!sBA}UmkV{kU@+o$cR>#J^|bivBC;b06u!}@@|M3SUVt-`Z-6v!i)w@QJ z?)_sb;=QD>yac3bXWZJ~$ILQcSjyNk6x&h^BQ0>)i8Hr=5q4B5iP*;gxyT0)hw?|= z^^32DTw?1@cdsiERzA-GjL(?U%V0}~>xhkVF}b?c-t9jZ<0Fc?SLWxhW>rvtfJ6qO zcPQA62s_0xduo#kfxl-rt+D(vGiej_tvr31%2ZWHL_PFV+wz(#D76s3?-%|BLQ=o; z8s4vpoMyGCZtT;a7FiQQ5_=F*lT-Y@@r)xl;qpHfqWRN$0{B!o&O1kUExQ+rpJuzb8kUqE$vNd^DI=PB>3T} z8|J!hf7n2JKT7%Q=TW}?UWA4X&lfL%Pa-j-4|d6t*8)d6 zb?EI_ejL&bnW(EHg9x-?D!j&jDfWXXQIDSm5Lf?#G$YQwA>2$WOsHW}+1U{p!=rbj+b)e!SR@eRA)BA9t%RBA=TYmc=hpY2lcqlcJts(WH z)N2_MKX(+Dw85QS?V(RWRg%U&T9m;1(VIc%@-@+jTAhh9*H^XMTk^M6F)2c^lXblQ zs;pvT*k|7y}kwyeIq;$srz zs5Ya;mGH^J1#2|z$^*oJ&Cu)fg`jKdSrC(mC2j)h{-0$Tv+Yx4FK$qg;a+>qw3xtv zC49FGy_x)7B_vKyQH>mL&HQE{xr1@)+WVc8lZQUKjh{r17e zz%({C8=P3cjV}dYW_&$G%`Aal&p6{xP)fws)o~2BFoa0o-FxgCu3dT39cm?LS18!@ zJE4$rH#hSshuX^CI^+lVw>B!|U<2~TIIY9mb;Z%?h(wuFbB|Aoa{u-mAW%!9G7%cs zDSyj78in$d1U%`bg#k&hf%6?&TBcN^7tc{?o596NGWuB=Y+H8JMm@^xk))AIZL@-W z_tuAvDbWKs@iW>fDo<%twb#b}E~VaB_}11N{_2{(qw_k2>tsokACGN;sto%$i?6PN67*g(HEBWWhYe2d~mp#Op-q+ik7TC zPPTJJ3WGI|uqVUygCND# zS&ILqZvP*%3k3}4QTK)M-;CzPD;6_zX$OBEH$vlzg?#TP#`qeERp|rGrU|hvbw^Z6 zR+O4vh0nV7El#eB5u%E*x+hxUL(WYw-&WW;&cq}hz@%dK6OUbe#XGH9Qx{ss1WOtO z4jChz2Ds>D&hK2UXbjQhm&Qq47)&IC+}wph9YYyshZaAm;&IzRS-H6|e@K1fPTvzo*Rn-T(NPIJXQE zhs??nd)Z;z=#nNg=6ZTHz1G7&54(=3eb{`)MNMrj4DLM{GJ6Bk05R&@8%Celw+cR>(`V!`e*OK62dE`^rCAms z4T=SVYk#%kxpBlMA!zS- zV!agxy6e-0>ewM+hr3pQ@qBr8DTPtNM$?WzjF#nKoQgO5u_Q@WN5cf&Tm7hJ?drdJ z6F=u_8*4{bEUOEX*(+{9*gH^Qi$ceyUhC|v_^9W{FUi{TY01|}#H}`pRL2Ttl?%N= zLCXR(Gi;|OQF6&lhs}hnd~-Fc*ueSzpcuB0*HWRupja!G#JzzxQY%cIZ!6RuANMiR zD9&Rclb3r+9dDrnr%VcPK!XA%w^nwWvSu3YC)XBd1qj)f4gvF9^7p+Qi72uzP@BOcN+6fmtgdZ(13C#Xq_7|8Mm2=8;o2enfVRK__Pvx4 zUBJ_8)?lbCKvM}t`0pYqxpt_@;s*Q~#1_K1-ee@u0SpRE;{ld>_tNT&Z=jjCN2UKs z%udI6B7D|K0eYAn5A9h`a7&{Lj9XxD)o}JOQWl zW5g9WBk;?5hM#j4C6f+HC&un{df1;(YdA_i>Q1XQ7=Cn^a}`@}^p5IKh$=S3CSk1V z^JuVR3pf3a);C2;3?zkUpp`>(M8ofGKQmf}E78K!(h!q&N|=PVQ+piM`j83!d9o|8 zh;&03Y#8scb+HHq@m%%vNQu-%u7@Gdh4QqEKAc!SL$x+YA1-pcB?3W~zvBM&FC3nNljl{tO z@b23x&;Bu6GqE=eS=?E1u%vz189e4%UnrS4cEpXV(aZCtUUPND#?zCjkD_=YuTy7w z<1de=0H>Rqh-_$w>viR#8;pj6^|u_rwAZ@Xb=ju;J{*ihLxB zT6_uNBS*G%b@iO~plf}_xF=@LS9robu4Ntu;otrK&9g;t81LmMGYIcPRjm#xfsA)2 zDqx3)SUXU#!`lN|hP>{ne-z%idMHS{al1h{7ML`0B>AhLkBY5!Rz)yp5Y^&@(l*y; z%$I2-n_95S$NT0(H;(CeC}IZ7Tb?Rc`QgX6f$O}V4Bm=7s(6^aXBTXu${Pj&%M3<4ER7(>>~EDP5C z{cuWE=-4Tyjo+_r?2!BO(THlUuCc5$he?XY+OQ@BN<{V`Y1hx(g%*2OWd)m094;O? zp_wR}h?W1ROE=9~QSQsa>>3*6#6G85|Qiay!H8e{vq zdd=ajfdEbI(-qNFa)5Cg=F?+Z^67IbpZkxX_R8}AAF1nFgYhLBzW5mnu-G$={voVb7S_tZWwsNRe1T8H|w9q!%KqZe} z!S%rfeKk$<-%NzxGv=%DSO|t}f9vuIh!hF}?@Di`co-zcuQ;47j1pr?n08^(pYr>% zdPF34oBmERZNRIV4lg|*{7RS|;_%fBphqmRGG$Gxmu~}<*Uu;`nRO~QttvEeL)K%wREsgMPNFqj8P34I)nkI`= z6OmJhLn*rZFeavQf)YxSixxWm8TvP7mgei*XY_g_-AX(WHv?~WT^X;Fn_CoQqvz^L z69{cX9G}&(@-fn^=)dNkbC_+dJlJ$6Il^z9?KL)83ljp^@ucf6+XgzJ*I8q*c(+qR zDNma=S2!_$evgw*)YIvm;#rvMJsP9Ba>THzi?0>xT~Ek0$pc>41?3<<1pNt)FBRc&&FhDQA|~@?xNK9Zdm%i3RuKwRiWsR zKNe=W8)rz|DksJ?_;i-#N|YmQOQ*uX(G4AD-B#(FpRV#-dVDIOH!8&3IKP+QY>O?U zTq*rC_ZZ&HJ|G`=eb<&eNuC{o<jM1C#dpG09O3R0t|A&|n9Z*Rsp%(L&WJ%$hSwcUvV>wLW3QOw-B`gM@NLfzVkC0r~N@%qBZ z&_SphPuI^DcaE%@JS1PaFu^L77Vo>)MZz-QhBV<%{<@}4EfMr7howU#`5n#EanM^Z zfP*o_%sTg#)y3_cY~>{5TjKZ z>r~ng-Sh|~OCajm@%rP%<2&ns@}qo1S&ewhaSOP+^#FZvjqfSI-*0=Y>~MP=63z9N zx45h|6w)+!GgZYzV|)B_(K(cRQ3cgz=D9_NTnH+A9?C@Mq{qHP4$6hVoD!gE1@b13 zWQPN!e>NRxmQzT{EC4wzHD(mM|Gr?~g~w%QmU9o4zN*zB66}jUg^4)3x+Lsn5O(sR zytO@BlVmbU)Meb;!VPWlzp%|vgY5Vokf(t|K#*W;x)w2gvh^Z=wFr}uq{VOY+rdy(A+Zh4bY^uf)k<2n6`h_PbG3DrZsIt9F9lOXS;ElIBcxNd?y^N5%;8!- z{)W7)Y`eCx4evxLwniVrGH!{%AEX>*tI9*=_`?M-^^Tz-9iH2SVlNWhbe?qi_3Y#QPXq7&am7*M zMFc%ZbTC>TUa+wYK!nJu*l4KL3HL;Bp1QH6J04zivVmWh3*=dB45lvgwtX0nO0QuD zl16gpHS3}!xRK-W_(;A?8MX0tq>}~?q8VPCmraKzOGi;gA;4}(kcpA80k0x`#F7I`tSe=u|d zm##;|bAGa|-Ia#tgBAmI5KAV5x)Ou1?mnt_%DZJn?`*s7PN!LhFdLx9eUh2$exa4U zzfck9@O}O$dLF**rIFfZS{1LNfYYdhT(O8^kDLg$$iliaB}z{S5Zm{OQX%ti4>{ib zA^BrytA6O?3x`<-L~C$tGDO*reu%Puh=bXnX2wcFhqetb67jQ zvRTpK?iGaU(j(#d<`qk%R@Zrx-a|8>@O+DnJPx(ym(s^f#odZD9pjr2y;;gImxq@} ze2)PZ+~|D5+*RzokKi@8AC>eLTOSfw|fh1a|5eQ2M$`X#qyFgui%!8>L!7 zJzbFkPw0Nfk3Y7H=-gZI+ymww9~GN?Vx?#786^+z#U%v0$NtI|xAS@lIPL(-d&QNGaP|N0;QkC%_Le2BdD1I4F}ofS-)4l{CGkyEl%6$sOx zAvSah3>%P;Uh+$5CQmz!-gD7h2f2r;a$a@{yx+K{KI|!*2pcIoKXBYUX$#vUXZ+O- znFue0(WKE0HkxAbLdrpzOIfhh$X7is7~dXvm;RS;Z@;)|>J%5yFTb%8x>Otorxuj_ zEt+fcIoJWDQxD2rXFU~&aVxIT?p9vR)eugk`#O*++^dut>I1%64|x?sCf!rF8Q>YA#m;ilAHqcW7K@57&2pAL|9t|cM-~sRT5gI82`TT zB`9wlVNNPb$q8C~EPbsZ_yzVToV*k{WJNf+z>;d=OH=lOH{Wd0RRVT>D^*5A8ykje z(_x`3bA#3}*^j8$1(oEb9AkCzXuLGHsB=#TV@~*JK_opvAJUQ!L2R{ZdbNQK@#k=q ze96>3;XTTaO1}7_hfkmpzO>-Y)(ZB=VlcX%=PCb;qW{CUg;R8wyG7rl)O9eFc{?2a zbKBWX>E)Vb0SwV6`+DR}qRwAoWIPeEh-T$9);LP{cu+>Nt5&=@_Yu3EsttAeXRb|Q+7Qx7h{d2 zljFk5er6u_0UB_qAs9nP4w^jM-&M}IXx8>3D~ zAkY~|%Na?gzLLwC{#vJ>Y=D_gbwARV4V!n_sXsSrT1Tc%YQ{m8+q#sMR2@<-Se}-W zyz=o7@mV-tDdi#9k5@FC_cTk2_>QFNz0{sRM%g`EIrZ;Vj&Bs*y6KtM7SEX|NOf~* z7$)P++05T#RpEYh#6G33Q+TwPkoGv-(B@jl>a}&?W%nkm>ThVn(|yb^3&a>CTPC;M z#G%+p5KdNd*w9APncU)9&+||Bu21r<&PM0pS83X}?pdJ@NV zOvxNle&_#UOZ#&DFUJmp^nAbi=z|Mo$2Z<|Z>F1tisrGs&zawbJ6x;mbJ%}klsO>+ zSBmu$%2_2Q*mmu+m+62VF4@Oc^GwqFPP6!*_AYO%4J>mL(WhkgoACdrV>l^53Z}-F zj%wNPB;MfeYVX->#su!1?J2zU7j(xK zCA-eN*F)2<;3d=Ucc5C$*AT{pgXHda`!M=UZZOXlek^gab%+mRcuJVh?5m7C4~tOR zo*|a~S++kngzY`J%i%0%dqBX^aj|K20`ZFkwsILZOhcWq@jePfq3NHJH=l$-?6|w$ z@sEPpXxUn;u(MsXXfrZ)TcfP3uRuGVzxHa`C{<28uMN65iB3-P(m0#q>CqNtSteP# z<*fi%KEXqjD+GA|-zd)idIE+k`u-QOA}HIemPxfHcK*cii{;}NEafX(HVsYn`Q8o= ze8e78#)c0Tslz@)c-G@k37WPyrchh2H{`?z9?=h^&A_d&rP*)zq@_YRY-8t_ipKj| zSl^QPrg`_6oHWMmKA@mjJ9Y#7EAl4;bJ|Qy^At{38?kVNMWg-glHmN#GvDd7U+NH6 z2FIZXyLR~q6-pwC*jRLe-*ak0Up13nD&~L~nT?p$-~u9jpBJ>9#tgJnaBuNG3FKMH z`K0w^N=YqUYTU+mq`s(n|C&p$(mPKC?Q?lSczU~x8vh&Q!J(J!-D&?dz3K}FtA8E_ z5uR5Tbp0>2i?Rs$lo;I_80x-M%LTZcR$$WQlwQU%anUiBLIXUD635~NPPd*rZSR_0 zRK4_-!o$PTj@w=7c3I zh&P(t?g4>OI$X(d-=!frQ=7nWb6%Mx4Ux>j8yGtIFc76Dtv&48-X962!w-@lGLuca z{?i=_smk-;#->~7V?y;vtgRbit21|ody==g(o_%Uy^dIuZu;bs5#1hFMi?#4g!YM{ zBpdgNFos}oiI7fPXjGi`;ECNRj`nHGW2LsCRLoWuAYto^l z0^a0gt+r=qWVQXS=nb%JO_zVHP`96%Ch5EP`x?(VWo^LJeo2eLmW@P{@`LNzf#2E& zC0n^-fZk?Tl!~Yy?wz?`9wE*^^RGy)c0IkebUBDS1~Um}-YVx{>YE4`!jxSP2KRsN zTF&hRog88)ZUK~Xc? zO-tq&(<94zbr^`L07wWfbnz2w=}>OzP=MT$BllBYR2!=a=BQN7g(*sf8HnM#b#q$@ zn!~Fk_P>Z8SN}~N-l2Vb7=Ie+>O)nu+?TsOfL=pt6#Hw4n@Ij+zzs0Uf$Xq4pOd2abS@`CQkiPgmzV+hyC2XO*F{Cc%2SKPN{@%tuObkZe*uyKNE zRyX-rhjr1??b$2Miiv?1#G+UQK$^1s0-V#gTCjM6s^l`BvtX zmVVlP^YtrPjps^LSb_CV5WwfF&DS#gZLZFxy1aEQhg+?wdMeu`zCeKdpeltk8(*Q= z<@d#EU_{1-2ticm;q}kpxz=)h4CzjlE$=ryh^T2pVYeji^oWh0uNdb3eQ${;cc%Fj2Br_kr=v=7k{&&C75o0{Rt2^|bB=n}LpcWN1^SD1V ztbF~S+=ijJ|9ym9j)!pl&WO@3J;>Nw_1C6Ji2@P=Zj~~E(R|6|GaYlvuz+EavZ;qv z|NKj78rT=QgWvti85|TMM_iC5czZ8K-}>r&E+fJpWj$3Ne``n6?Wa!dcM_pE6pXL< z**~%9vzn5Px~Lv+Php-{iLDsNgpIfzrD3-+I_|DCq20HGAIyk4%%4laTyNK&y{x|@ zl$oa3tN#2~fMEzBGV~}S+dC{G=lN#Q=P7C>iu$2i=w+kbsQ%oyQ?WlG2u^Ht#4cKl z0G4(|d4f%NRD<2mS2he0iWq-~;3rI}i5gluQ@@?<#0=m5UW_D;3i>nGo1sQ1Y(@DI zXc3eM4C`{!IX?6$z05VnI2#iG(~^Ir0dM&GSE$uprkULSpS&H2?N*2b`xO=y=R`y3 z+`D(s5J^)8S>8MSI%7OwLTjX6{)6ByC6lr&_K2H&VD(X%?J+l7;~8QrNJ**!ORP+@ ziWZx-nt%?Nf%Zyxq4PSZK!LE+nRFg!K}~E%!GMfvD?~iT*{1k8$`MtzNc87v*GRXz z=XfIRla-p&*L(Vi81Ez(#en#yBcaEQ_lnF^$XnI>eS^FIBcS_Vs2~*ZKjKUU4>~gT zcFqZ|Q+q8uKl)t(5t1FKO_I+(s1nmb>y^Pr7!9@-zUgBu25c;!c@)Y|h@SL?Qzt@^9K-gvy+rW=e*{5}T)E`Q22dD%CDc#+&TGEb0qsG`zW{SOUL?U&3lBY9|yZ84MO_U;UYWX1URJpm)qIb{!IL!7)TJZb%`K^pqiS`fA{xPdhf8m1=ooH425k{|A{Nm3xN+I ztR83e8dB1E)RKvV7e-DqNlr=ioMmMZ<&Fyl{Lzfyadi)276E`|S76C~qmTlv zfYb~Ag4oX6$&btZTWK)&a5A0sa}lpJm_*VkbOuuc>3Gvr)O-;2CFhpX-Gm40%@R`%Of(GpHj%&VTg4 z`y+6M_orc@)Aw$xJ=#4A`LzNrcx!LP26TFD@rEeKN1^FOfm1BoZOFH@0MfZZwBLh&>$c~hk44*+^@w2>PpEynjVsI& zOsN}&8g7<9K05ZyXJ1ITUan1)Q~tbv7u^qAjSPw7aG3-(!AmDn9+NHkb@3ifuA9E} z3{s-sVW>rF1}~Yu?~TQDd;ahZOEi@fqrK!kBrSptpsz>%hX70X&R)0u-bYnB<8la- z4WrTb&qd1r59*`5-r7)Ra6!BW@{F9{*zMP|d0T)_~GN(=|>zUv(4eVLa2}GyIRdw zJ2Q;vg41&##(Kn{2L0{h1`?^)slOJ~2*f(HC1_{mw9{XLk1euH3{YB2qDu2y*r<~W z&Q7<7mL>QN_UXk8@RFH>@z3&T;TZG{=oS8)Go+P7u#lY!XuTfXLdiw4ZuVNSU;crI zq&3g~q(RE3KU0Kn;#iDwppDR_prD9<7TnWI$9atNS?5b0mcC^(>&}-2guvBgT<^i2 zUWPmyhL>r4=sQOp{vT&(pL#@Rk?nHKJu?uwmQtnX*(wdR zI3W8ZMbaXl5$kQ+7S;N4Abfk=3=QdY@&h(r4B)%iI*%gvFef`}saeAn2IiffJckbak5U~GR# zX)T2zIp?-_b8T(p{TX}dx-_8SU+DT{zVLzR10Kcj_x2jMC-U?|G09rc1f{O0_lRBh zI9WuoK1J$Rd?q^(ck7&MW9CJH?xa|kFqz0}SEFl-Byl})0OaVom=yajY{d1C)6&5i z?sLuk*i$F~kkVtKuPNsnSZep#-G7l1vXUNb{;Cha<*F*4HvIOp+S& zDil&m__Vwv-x*;y+b^}(_!zA(E4ZN=RPshzm-kR}$kE7Obn`RtCza!%Mbv%tS@Jjw zSI0d|eY3y>3`!ED;xT>_LXsgZdDcqGMlelhtyQi`bh%);f1J*9*3s$s$^WTmj>+|b=E+ErV% z*+{T~e-@O?F75p`+(Ol60bL>-IW#L@y99vqpvZ|Wj9wPl>_`~+;&NA$-@GpbX464a z-;O9juF_?gc{N*HS`IEuyio|P6qx%>>5s@pBes7kqg=A@S=OC)?6ulJ3(pw2cZPfH z${?iVa&S5rpmIB%f4+<5C^gqGqE&}FV%64o86RH*{V}?wwq5luA^)oTzvw14gD+tW z-=8c+Uf#_|eORy{O&`P43Bn*STNg&cdG!yG@M0dk-R+F}FPJq_!myclw2N{S>5G%x zwr1*RWt8Ge+{^L)c=V-36}Owo;FN02b&194_GH@=iOW`H#5R22&Z1h~Uqp{SQVXTS zL(;;)3j{k*R2Jx4DTB8?%7ih(>TIMpy)n$96tsGX;|A$s{z~VFwXf zvObg1KMhd3O1!#lybHBmbbCy3(CGMum!oO#8!W^PU-(VjsM{!toIJMD!fL;!OfyUI z4tM4ZIOaE8}b;li0U- zPd1_h5)%Z=n-SFw^c;KS5~pIrf_B$v?#>w^4Sge`c!(l?d>rR-s110?2$E}k`E#nK zdfj_ai27-p9Cr*8F0@|@Z$Ped1eEb=O%XwuF@I+vA@OpC*i9#}p*Y|6Sr`u`;t1|E z`?pmfN0j~8O5K^=-UG3t45i4I=#!PN2lpphS^o~Ue>rg3inne}KNBbm!O z%f5cQL$s3kDyn#Onq~>EWk6iy9a(Ac`a>#_A`GwTDVx8ZUMK)t-ynIIt}VY6@(k3? zCzDfFYo45;Nizb{tV;}_(%k=oeQm{_*mUE;l0Fn&f1F&SA-Fl~$@78=X7$*Xt&qre zw&GXmIs-NPc5j%rN;U|3R?mI0gR$zm^l?%XP1r;{Odys>*d(PMN%)AX+(U;;7fi|9 zlK`uv2U(!X@u$5dBw5Ns0{InL^01+#F_msboZCrOQd@EoT@(Jo*nAE*Oe57@PHlcZ zG+(bOiEt5QgdBwr&F3rAb&h^E$c$Ec)A|6Bc?lKk28ikaCQ zpcu($JqA1aW)f^RUiuLGmPW4nSX&V~eT>FY7nf}a=N2T=AcFAX9>UV*yz{`;TRml19?Z32~?@w)kOeD-6XA0}e z$P&@r<4wk)%)qpf>RQv%KKeXE%9qB@wxB=ZiH;>oE)0mG0}Icc4sf)#mG~N&WCayjXdoA#``WRq!MW7PU|(5<^=b~q1Yep8G4k0m-K5`9^hNZA zmm3gZ(E@lVZ*!EWBk3)Vez|fCPqEc|T0XuyBF84=WpnAoT#o??3w9iHo&T!^$d}v^ z$F^505|DSRoKxyJ_coPL1BKJ=d7hCswNJ-H;I1SD@0NefPytW@zO4y;Z)H`2!s&|5 z8;^pZI}>a&4H1M&DFW;cskte!aqM_tS;Y|M!91Rh2!BWFAoMQqQ*?P*x27$Rp6B%D zr>iprVs9!NdSFi0OaJu)BTD6J33h0R(`oA{o%^lsaK};4wj_07V9#%tu9@vQB@qN+}qC*jF4!P70|4*n>A5uRb}~ z^0iqRf_C}tQ&fnmJ@&uKfKln5+n%{DTt(L|8D4bE(uoGyuxl(dcxh1a`p~@%|3b|v zjsUohPp}%aUXXA=*b3Ajc@edP`@V<6?*C;bIr+b4xj=!>t6Lm6yW`$i;*rvHd}qVhf%)!stt-4PxJP4ncd!p=^T$(8b@I_(E!cPNorM$gDaDd{!Mb7B{}68ga7bd zh*>0uXNNtY_YNafAHy*e?;g04sAkX`L_DN7R12F?FxX%_^Ri*xgOI(V!b(aD7*7C3 z&#L38jyZ7dAY)B81*8+@dxl%U44L7pN@EdNx$mWi%+B5*XlE@Ro8>$5I}oJfv{+(U z-FB>of#o5XF)O*c(Aw+H2k))qWEsksqfaH-a0tB3dZx= z*@OCJM^!ozbL7xCp8Ei4-4>Ezss?!XPsa16*lIdhQeH2RX)AFgljo^xF`!7HNLLmJ zY<)a+rR?`>RY=IGHLRcG&!2-4I`&TAO)oc0?7J?w>Kc~ye8JPdG*d)xB}lzQm#z

11)p-SCV|9O(t5HXW^(qw;FMvZ- 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 YW8>>iKM#9j5b*E0l;YE3NyFFw2frZ3M*si- literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/banner.png b/pos_add_product_webcam_barcode/static/description/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7b8c725f53c9c241571d1f7a1bb948112877c6 GIT binary patch literal 53140 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 W^tFda?q%iw<6tjymS&1)NB + +

+ +
+
+
+ +

+ Add Product using Webcam Barcode in Pos

+

+ Add products to order line through scanning barcode in pos

+ + +
+
+
+ + +
+
+ +
+

+ Explore This + Module

+
+
+ + + +
+
+ +
+

+ Overview +

+
+
+
+ Add Products Barcode Pos module helps to add products to pos order line by scanning product barcode via system + camera. +
+
+ + + +
+
+ +
+

+ Features +

+
+
+
+
+ + Scan products using system camera +
+
+
+
+ + Automatically adds Corresponding product to pos order line +
+
+
+ + + + +
+
+ +
+

+ Screenshots +

+
+
+
+ +
+

+ Add Barcode For Products

+

+ Set barcode for products that available in pos

+ +
+
+

+ Button For Open Camera for Scanning Barcode

+ +
+
+

+ Scan the Barcode

+

Corresponding product will add to order line.

+
+

Product with this barcode will add to order line.

+ +
+
+
+ + + +
+
+

Suggested Products

+
+ + +
+
+ + + + +
+
+ +
+

+ Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+ +
+ + + + + +
+
+ +
+

+ Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+
+
+ + + + +
+
+ +
+

+ Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/src/css/dialog.css b/pos_add_product_webcam_barcode/static/src/css/dialog.css new file mode 100644 index 000000000..225f32731 --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/css/dialog.css @@ -0,0 +1,13 @@ +#barcode_id { + width: 468px; + margin-top:-15px +} +.modal-dialog{ + height:453px; + width: 486px; + margin-top:18px; + margin-left:-15px; +} +.close{ + display:none; +} \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/src/js/PosBarcode.js b/pos_add_product_webcam_barcode/static/src/js/PosBarcode.js new file mode 100644 index 000000000..a33b9966c --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/js/PosBarcode.js @@ -0,0 +1,115 @@ +odoo.define('pos_add_product_webcam_barcode.ProductBarcodePos', function(require) { + "use strict"; + const {useListener} = require('web.custom_hooks'); + const Dialog = require('web.Dialog'); + const core = require('web.core'); + const _t = core._t; + const PosComponent = require('point_of_sale.PosComponent'); + const Registries = require('point_of_sale.Registries'); + const ProductScreen = require('point_of_sale.ProductScreen'); + const {Gui} = require('point_of_sale.Gui'); + class PosProductBarcode extends PosComponent { + constructor() { + super(...arguments); + useListener('click', this.onClick); + } + // Click function of barcode button + async onClick() { + var video = document.createElement('video'); + var self = this + video.setAttribute('id', 'barcode_id') + document.body.appendChild(video); + try { + await navigator.mediaDevices.getUserMedia({ video: true}).then + (function(stream) { + video.srcObject = stream; + video.play(); + //Create a new dialog box and open. + const dialog = new Dialog(this, { + title: 'Barcode Scanner', + buttons: [{ + text: _t('Close'), + close: true, + click: function() { + Quagga.stop(); + dialog.close(); + var tracks = video.srcObject.getTracks(); + // Stop tracking + tracks.forEach(function(track) { + track.stop(); + }); + } + }], + size: 'medium', + $content: video, + }); + dialog.open(); + Quagga.init({ + inputStream: { + name: "Live", + type: "LiveStream", + constraints: { + video: { + facingMode: { + exact: "environment" + } + } + }, + numOfWorkers: navigator.hardwareConcurrency, + target: video, + }, + decoder: { + readers: ['code_128_reader'] + } + }, function(err) { + if (err) { + console.log(err); + return + } + Quagga.start(); + }); + Quagga.onDetected(function(result) { + var barcode = result.codeResult.code; + console.log(barcode, 'barcode') + Quagga.offDetected(); + Quagga.stop(); + self.scan_product(barcode) + dialog.close(); + // Get the stream tracks + var tracks = video.srcObject.getTracks(); + // Stop track + tracks.forEach(function(track) { + track.stop(); + }); + }); + }); + } + catch (ex) { + this.showPopup('ConfirmPopup', { + 'title': ('Access Denied'), + 'body': ('Failed to detect webcam.Please ensure that your browser has the required permissions to access your webcam.'), + }); + } + } + scan_product(barcode) { + var product = this.env.pos.db.get_product_by_barcode(barcode); + var order = this.env.pos.get_order(); + if (product) { + order.add_product(product); + } + else { + Gui.showPopup('ConfirmPopup', { + 'title': ('Product Not found'), + 'body': ('No Product with this Barcode.'), + }); + } + } + } + PosProductBarcode.template = 'ProductBarcodePos'; + ProductScreen.addControlButton({ + component: PosProductBarcode, + condition: () => true, + }); + Registries.Component.add(PosProductBarcode); + return PosProductBarcode; +}); \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/src/js/quagga.js b/pos_add_product_webcam_barcode/static/src/js/quagga.js new file mode 100644 index 000000000..eef11f9b4 --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/js/quagga.js @@ -0,0 +1,11583 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(factory.toString()).default; + else if(typeof exports === 'object') + exports["Quagga"] = factory(factory.toString()).default; + else + root["Quagga"] = factory(factory.toString()).default; +})(this, function(__factorySource__) { +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] = { +/******/ 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; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // 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 = 166); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_array_helper__ = __webpack_require__(3); + + +function BarcodeReader(config, supplements) { + this._row = []; + this.config = config || {}; + this.supplements = supplements; + return this; +} + +BarcodeReader.prototype._nextUnset = function (line, start) { + var i; + + if (start === undefined) { + start = 0; + } + for (i = start; i < line.length; i++) { + if (!line[i]) { + return i; + } + } + return line.length; +}; + +BarcodeReader.prototype._matchPattern = function (counter, code, maxSingleError) { + var i, + error = 0, + singleError = 0, + sum = 0, + modulo = 0, + barWidth, + count, + scaled; + + maxSingleError = maxSingleError || this.SINGLE_CODE_ERROR || 1; + + for (i = 0; i < counter.length; i++) { + sum += counter[i]; + modulo += code[i]; + } + if (sum < modulo) { + return Number.MAX_VALUE; + } + barWidth = sum / modulo; + maxSingleError *= barWidth; + + for (i = 0; i < counter.length; i++) { + count = counter[i]; + scaled = code[i] * barWidth; + singleError = Math.abs(count - scaled) / scaled; + if (singleError > maxSingleError) { + return Number.MAX_VALUE; + } + error += singleError; + } + return error / modulo; +}; + +BarcodeReader.prototype._nextSet = function (line, offset) { + var i; + + offset = offset || 0; + for (i = offset; i < line.length; i++) { + if (line[i]) { + return i; + } + } + return line.length; +}; + +BarcodeReader.prototype._correctBars = function (counter, correction, indices) { + var length = indices.length, + tmp = 0; + while (length--) { + tmp = counter[indices[length]] * (1 - (1 - correction) / 2); + if (tmp > 1) { + counter[indices[length]] = tmp; + } + } +}; + +BarcodeReader.prototype._matchTrace = function (cmpCounter, epsilon) { + var counter = [], + i, + self = this, + offset = self._nextSet(self._row), + isWhite = !self._row[offset], + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0 + }, + error; + + if (cmpCounter) { + for (i = 0; i < cmpCounter.length; i++) { + counter.push(0); + } + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + error = self._matchPattern(counter, cmpCounter); + + if (error < epsilon) { + bestMatch.start = i - offset; + bestMatch.end = i; + bestMatch.counter = counter; + return bestMatch; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + } else { + counter.push(0); + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + counterPos++; + counter.push(0); + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + } + + // if cmpCounter was not given + bestMatch.start = offset; + bestMatch.end = self._row.length - 1; + bestMatch.counter = counter; + return bestMatch; +}; + +BarcodeReader.prototype.decodePattern = function (pattern) { + var self = this, + result; + + self._row = pattern; + result = self._decode(); + if (result === null) { + self._row.reverse(); + result = self._decode(); + if (result) { + result.direction = BarcodeReader.DIRECTION.REVERSE; + result.start = self._row.length - result.start; + result.end = self._row.length - result.end; + } + } else { + result.direction = BarcodeReader.DIRECTION.FORWARD; + } + if (result) { + result.format = self.FORMAT; + } + return result; +}; + +BarcodeReader.prototype._matchRange = function (start, end, value) { + var i; + + start = start < 0 ? 0 : start; + for (i = start; i < end; i++) { + if (this._row[i] !== value) { + return false; + } + } + return true; +}; + +BarcodeReader.prototype._fillCounters = function (offset, end, isWhite) { + var self = this, + counterPos = 0, + i, + counters = []; + + isWhite = typeof isWhite !== 'undefined' ? isWhite : true; + offset = typeof offset !== 'undefined' ? offset : self._nextUnset(self._row); + end = end || self._row.length; + + counters[counterPos] = 0; + for (i = offset; i < end; i++) { + if (self._row[i] ^ isWhite) { + counters[counterPos]++; + } else { + counterPos++; + counters[counterPos] = 1; + isWhite = !isWhite; + } + } + return counters; +}; + +BarcodeReader.prototype._toCounters = function (start, counter) { + var self = this, + numCounters = counter.length, + end = self._row.length, + isWhite = !self._row[start], + i, + counterPos = 0; + + __WEBPACK_IMPORTED_MODULE_0__common_array_helper__["a" /* default */].init(counter, 0); + + for (i = start; i < end; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + counterPos++; + if (counterPos === numCounters) { + break; + } else { + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + } + + return counter; +}; + +Object.defineProperty(BarcodeReader.prototype, "FORMAT", { + value: 'unknown', + writeable: false +}); + +BarcodeReader.DIRECTION = { + FORWARD: 1, + REVERSE: -1 +}; + +BarcodeReader.Exception = { + StartNotFoundException: "Start-Info was not found!", + CodeNotFoundException: "Code could not be found!", + PatternNotFoundException: "Pattern could not be found!" +}; + +BarcodeReader.CONFIG_KEYS = {}; + +/* harmony default export */ __webpack_exports__["a"] = BarcodeReader; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + + +/***/ }), +/* 3 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony default export */ __webpack_exports__["a"] = { + init: function init(arr, val) { + var l = arr.length; + while (l--) { + arr[l] = val; + } + }, + + /** + * Shuffles the content of an array + * @return {Array} the array itself shuffled + */ + shuffle: function shuffle(arr) { + var i = arr.length - 1, + j, + x; + for (i; i >= 0; i--) { + j = Math.floor(Math.random() * i); + x = arr[i]; + arr[i] = arr[j]; + arr[j] = x; + } + return arr; + }, + + toPointList: function toPointList(arr) { + var i, + j, + row = [], + rows = []; + for (i = 0; i < arr.length; i++) { + row = []; + for (j = 0; j < arr[i].length; j++) { + row[j] = arr[i][j]; + } + rows[i] = "[" + row.join(",") + "]"; + } + return "[" + rows.join(",\r\n") + "]"; + }, + + /** + * returns the elements which's score is bigger than the threshold + * @return {Array} the reduced array + */ + threshold: function threshold(arr, _threshold, scoreFunc) { + var i, + queue = []; + for (i = 0; i < arr.length; i++) { + if (scoreFunc.apply(arr, [arr[i]]) >= _threshold) { + queue.push(arr[i]); + } + } + return queue; + }, + + maxIndex: function maxIndex(arr) { + var i, + max = 0; + for (i = 0; i < arr.length; i++) { + if (arr[i] > arr[max]) { + max = i; + } + } + return max; + }, + + max: function max(arr) { + var i, + max = 0; + for (i = 0; i < arr.length; i++) { + if (arr[i] > max) { + max = arr[i]; + } + } + return max; + }, + + sum: function sum(arr) { + var length = arr.length, + sum = 0; + + while (length--) { + sum += arr[length]; + } + return sum; + } +}; + +/***/ }), +/* 4 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(1); + + +var _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; }; + + + + +function EANReader(opts, supplements) { + opts = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()(getDefaulConfig(), opts); + __WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].call(this, opts, supplements); +} + +function getDefaulConfig() { + var config = {}; + + Object.keys(EANReader.CONFIG_KEYS).forEach(function (key) { + config[key] = EANReader.CONFIG_KEYS[key].default; + }); + return config; +} + +var properties = { + CODE_L_START: { value: 0 }, + CODE_G_START: { value: 10 }, + START_PATTERN: { value: [1, 1, 1] }, + STOP_PATTERN: { value: [1, 1, 1] }, + MIDDLE_PATTERN: { value: [1, 1, 1, 1, 1] }, + EXTENSION_START_PATTERN: { value: [1, 1, 2] }, + CODE_PATTERN: { value: [[3, 2, 1, 1], [2, 2, 2, 1], [2, 1, 2, 2], [1, 4, 1, 1], [1, 1, 3, 2], [1, 2, 3, 1], [1, 1, 1, 4], [1, 3, 1, 2], [1, 2, 1, 3], [3, 1, 1, 2], [1, 1, 2, 3], [1, 2, 2, 2], [2, 2, 1, 2], [1, 1, 4, 1], [2, 3, 1, 1], [1, 3, 2, 1], [4, 1, 1, 1], [2, 1, 3, 1], [3, 1, 2, 1], [2, 1, 1, 3]] }, + CODE_FREQUENCY: { value: [0, 11, 13, 14, 19, 25, 28, 21, 22, 26] }, + SINGLE_CODE_ERROR: { value: 0.70 }, + AVG_CODE_ERROR: { value: 0.48 }, + FORMAT: { value: "ean_13", writeable: false } +}; + +EANReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].prototype, properties); +EANReader.prototype.constructor = EANReader; + +EANReader.prototype._decodeCode = function (start, coderange) { + var counter = [0, 0, 0, 0], + i, + self = this, + offset = start, + isWhite = !self._row[offset], + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: start, + end: start + }, + code, + error; + + if (!coderange) { + coderange = self.CODE_PATTERN.length; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + for (code = 0; code < coderange; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + bestMatch.end = i; + if (bestMatch.error > self.AVG_CODE_ERROR) { + return null; + } + return bestMatch; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +EANReader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder, epsilon) { + var counter = [], + self = this, + i, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }, + error, + j, + sum; + + if (!offset) { + offset = self._nextSet(self._row); + } + + if (isWhite === undefined) { + isWhite = false; + } + + if (tryHarder === undefined) { + tryHarder = true; + } + + if (epsilon === undefined) { + epsilon = self.AVG_CODE_ERROR; + } + + for (i = 0; i < pattern.length; i++) { + counter[i] = 0; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + error = self._matchPattern(counter, pattern); + + if (error < epsilon) { + bestMatch.error = error; + bestMatch.start = i - sum; + bestMatch.end = i; + return bestMatch; + } + if (tryHarder) { + for (j = 0; j < counter.length - 2; j++) { + counter[j] = counter[j + 2]; + } + counter[counter.length - 2] = 0; + counter[counter.length - 1] = 0; + counterPos--; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +EANReader.prototype._findStart = function () { + var self = this, + leadingWhitespaceStart, + offset = self._nextSet(self._row), + startInfo; + + while (!startInfo) { + startInfo = self._findPattern(self.START_PATTERN, offset); + if (!startInfo) { + return null; + } + leadingWhitespaceStart = startInfo.start - (startInfo.end - startInfo.start); + if (leadingWhitespaceStart >= 0) { + if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) { + return startInfo; + } + } + offset = startInfo.end; + startInfo = null; + } +}; + +EANReader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start); + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +EANReader.prototype._findEnd = function (offset, isWhite) { + var self = this, + endInfo = self._findPattern(self.STOP_PATTERN, offset, isWhite, false); + + return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null; +}; + +EANReader.prototype._calculateFirstDigit = function (codeFrequency) { + var i, + self = this; + + for (i = 0; i < self.CODE_FREQUENCY.length; i++) { + if (codeFrequency === self.CODE_FREQUENCY[i]) { + return i; + } + } + return null; +}; + +EANReader.prototype._decodePayload = function (code, result, decodedCodes) { + var i, + self = this, + codeFrequency = 0x0, + firstDigit; + + for (i = 0; i < 6; i++) { + code = self._decodeCode(code.end); + if (!code) { + return null; + } + if (code.code >= self.CODE_G_START) { + code.code = code.code - self.CODE_G_START; + codeFrequency |= 1 << 5 - i; + } else { + codeFrequency |= 0 << 5 - i; + } + result.push(code.code); + decodedCodes.push(code); + } + + firstDigit = self._calculateFirstDigit(codeFrequency); + if (firstDigit === null) { + return null; + } + result.unshift(firstDigit); + + code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false); + if (code === null) { + return null; + } + decodedCodes.push(code); + + for (i = 0; i < 6; i++) { + code = self._decodeCode(code.end, self.CODE_G_START); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code); + } + + return code; +}; + +EANReader.prototype._decode = function () { + var startInfo, + self = this, + code, + result = [], + decodedCodes = [], + resultInfo = {}; + + startInfo = self._findStart(); + if (!startInfo) { + return null; + } + code = { + code: startInfo.code, + start: startInfo.start, + end: startInfo.end + }; + decodedCodes.push(code); + code = self._decodePayload(code, result, decodedCodes); + if (!code) { + return null; + } + code = self._findEnd(code.end, false); + if (!code) { + return null; + } + + decodedCodes.push(code); + + // Checksum + if (!self._checksum(result)) { + return null; + } + + if (this.supplements.length > 0) { + var ext = this._decodeExtensions(code.end); + if (!ext) { + return null; + } + var lastCode = ext.decodedCodes[ext.decodedCodes.length - 1], + endInfo = { + start: lastCode.start + ((lastCode.end - lastCode.start) / 2 | 0), + end: lastCode.end + }; + if (!self._verifyTrailingWhitespace(endInfo)) { + return null; + } + resultInfo = { + supplement: ext, + code: result.join("") + ext.code + }; + } + + return _extends({ + code: result.join(""), + start: startInfo.start, + end: code.end, + codeset: "", + startInfo: startInfo, + decodedCodes: decodedCodes + }, resultInfo); +}; + +EANReader.prototype._decodeExtensions = function (offset) { + var i, + start = this._nextSet(this._row, offset), + startInfo = this._findPattern(this.EXTENSION_START_PATTERN, start, false, false), + result; + + if (startInfo === null) { + return null; + } + + for (i = 0; i < this.supplements.length; i++) { + result = this.supplements[i].decode(this._row, startInfo.end); + if (result !== null) { + return { + code: result.code, + start: start, + startInfo: startInfo, + end: result.end, + codeset: "", + decodedCodes: result.decodedCodes + }; + } + } + return null; +}; + +EANReader.prototype._checksum = function (result) { + var sum = 0, + i; + + for (i = result.length - 2; i >= 0; i -= 2) { + sum += result[i]; + } + sum *= 3; + for (i = result.length - 1; i >= 0; i -= 2) { + sum += result[i]; + } + return sum % 10 === 0; +}; + +EANReader.CONFIG_KEYS = { + supplements: { + 'type': 'arrayOf(string)', + 'default': [], + 'description': 'Allowed extensions to be decoded (2 and/or 5)' + } +}; + +/* harmony default export */ __webpack_exports__["a"] = EANReader; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +var freeGlobal = __webpack_require__(38); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +module.exports = clone + +/** + * Creates a new vec2 initialized with values from an existing vector + * + * @param {vec2} a vector to clone + * @returns {vec2} a new 2D vector + */ +function clone(a) { + var out = new Float32Array(2) + out[0] = a[0] + out[1] = a[1] + return out +} + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11), + getRawTag = __webpack_require__(119), + objectToString = __webpack_require__(146); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + + +/***/ }), +/* 9 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony default export */ __webpack_exports__["a"] = { + drawRect: function drawRect(pos, size, ctx, style) { + ctx.strokeStyle = style.color; + ctx.fillStyle = style.color; + ctx.lineWidth = 1; + ctx.beginPath(); + ctx.strokeRect(pos.x, pos.y, size.x, size.y); + }, + drawPath: function drawPath(path, def, ctx, style) { + ctx.strokeStyle = style.color; + ctx.fillStyle = style.color; + ctx.lineWidth = style.lineWidth; + ctx.beginPath(); + ctx.moveTo(path[0][def.x], path[0][def.y]); + for (var j = 1; j < path.length; j++) { + ctx.lineTo(path[j][def.x], path[j][def.y]); + } + ctx.closePath(); + ctx.stroke(); + }, + drawImage: function drawImage(imageData, size, ctx) { + var canvasData = ctx.getImageData(0, 0, size.x, size.y), + data = canvasData.data, + imageDataPos = imageData.length, + canvasDataPos = data.length, + value; + + if (canvasDataPos / imageDataPos !== 4) { + return false; + } + while (imageDataPos--) { + value = imageData[imageDataPos]; + data[--canvasDataPos] = 255; + data[--canvasDataPos] = value; + data[--canvasDataPos] = value; + data[--canvasDataPos] = value; + } + ctx.putImageData(canvasData, 0, 0); + return true; + } +}; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +var listCacheClear = __webpack_require__(133), + listCacheDelete = __webpack_require__(134), + listCacheGet = __webpack_require__(135), + listCacheHas = __webpack_require__(136), + listCacheSet = __webpack_require__(137); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(5); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(17); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(2), + isKey = __webpack_require__(130), + stringToPath = __webpack_require__(154), + toString = __webpack_require__(165); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +var isKeyable = __webpack_require__(131); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(22); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsArguments = __webpack_require__(96), + isObjectLike = __webpack_require__(6); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + + +/***/ }), +/* 19 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cluster__ = __webpack_require__(50); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array_helper__ = __webpack_require__(3); +/* harmony export (immutable) */ __webpack_exports__["b"] = imageRef; +/* unused harmony export computeIntegralImage2 */ +/* unused harmony export computeIntegralImage */ +/* unused harmony export thresholdImage */ +/* unused harmony export computeHistogram */ +/* unused harmony export sharpenLine */ +/* unused harmony export determineOtsuThreshold */ +/* harmony export (immutable) */ __webpack_exports__["f"] = otsuThreshold; +/* unused harmony export computeBinaryImage */ +/* harmony export (immutable) */ __webpack_exports__["g"] = cluster; +/* unused harmony export Tracer */ +/* unused harmony export DILATE */ +/* unused harmony export ERODE */ +/* unused harmony export dilate */ +/* unused harmony export erode */ +/* unused harmony export subtract */ +/* unused harmony export bitwiseOr */ +/* unused harmony export countNonZero */ +/* harmony export (immutable) */ __webpack_exports__["h"] = topGeneric; +/* unused harmony export grayArrayFromImage */ +/* unused harmony export grayArrayFromContext */ +/* harmony export (immutable) */ __webpack_exports__["c"] = grayAndHalfSampleFromCanvasData; +/* harmony export (immutable) */ __webpack_exports__["d"] = computeGray; +/* unused harmony export loadImageArray */ +/* harmony export (immutable) */ __webpack_exports__["i"] = halfSample; +/* harmony export (immutable) */ __webpack_exports__["a"] = hsv2rgb; +/* unused harmony export _computeDivisors */ +/* harmony export (immutable) */ __webpack_exports__["e"] = calculatePatchSize; +/* unused harmony export _parseCSSDimensionValues */ +/* unused harmony export _dimensionsConverters */ +/* harmony export (immutable) */ __webpack_exports__["j"] = computeImageArea; + + +var vec2 = { + clone: __webpack_require__(7) +}; +var vec3 = { + clone: __webpack_require__(83) +}; + +/** + * @param x x-coordinate + * @param y y-coordinate + * @return ImageReference {x,y} Coordinate + */ +function imageRef(x, y) { + var that = { + x: x, + y: y, + toVec2: function toVec2() { + return vec2.clone([this.x, this.y]); + }, + toVec3: function toVec3() { + return vec3.clone([this.x, this.y, 1]); + }, + round: function round() { + this.x = this.x > 0.0 ? Math.floor(this.x + 0.5) : Math.floor(this.x - 0.5); + this.y = this.y > 0.0 ? Math.floor(this.y + 0.5) : Math.floor(this.y - 0.5); + return this; + } + }; + return that; +}; + +/** + * Computes an integral image of a given grayscale image. + * @param imageDataContainer {ImageDataContainer} the image to be integrated + */ +function computeIntegralImage2(imageWrapper, integralWrapper) { + var imageData = imageWrapper.data; + var width = imageWrapper.size.x; + var height = imageWrapper.size.y; + var integralImageData = integralWrapper.data; + var sum = 0, + posA = 0, + posB = 0, + posC = 0, + posD = 0, + x, + y; + + // sum up first column + posB = width; + sum = 0; + for (y = 1; y < height; y++) { + sum += imageData[posA]; + integralImageData[posB] += sum; + posA += width; + posB += width; + } + + posA = 0; + posB = 1; + sum = 0; + for (x = 1; x < width; x++) { + sum += imageData[posA]; + integralImageData[posB] += sum; + posA++; + posB++; + } + + for (y = 1; y < height; y++) { + posA = y * width + 1; + posB = (y - 1) * width + 1; + posC = y * width; + posD = (y - 1) * width; + for (x = 1; x < width; x++) { + integralImageData[posA] += imageData[posA] + integralImageData[posB] + integralImageData[posC] - integralImageData[posD]; + posA++; + posB++; + posC++; + posD++; + } + } +}; + +function computeIntegralImage(imageWrapper, integralWrapper) { + var imageData = imageWrapper.data; + var width = imageWrapper.size.x; + var height = imageWrapper.size.y; + var integralImageData = integralWrapper.data; + var sum = 0; + + // sum up first row + for (var i = 0; i < width; i++) { + sum += imageData[i]; + integralImageData[i] = sum; + } + + for (var v = 1; v < height; v++) { + sum = 0; + for (var u = 0; u < width; u++) { + sum += imageData[v * width + u]; + integralImageData[v * width + u] = sum + integralImageData[(v - 1) * width + u]; + } + } +}; + +function thresholdImage(imageWrapper, threshold, targetWrapper) { + if (!targetWrapper) { + targetWrapper = imageWrapper; + } + var imageData = imageWrapper.data, + length = imageData.length, + targetData = targetWrapper.data; + + while (length--) { + targetData[length] = imageData[length] < threshold ? 1 : 0; + } +}; + +function computeHistogram(imageWrapper, bitsPerPixel) { + if (!bitsPerPixel) { + bitsPerPixel = 8; + } + var imageData = imageWrapper.data, + length = imageData.length, + bitShift = 8 - bitsPerPixel, + bucketCnt = 1 << bitsPerPixel, + hist = new Int32Array(bucketCnt); + + while (length--) { + hist[imageData[length] >> bitShift]++; + } + return hist; +}; + +function sharpenLine(line) { + var i, + length = line.length, + left = line[0], + center = line[1], + right; + + for (i = 1; i < length - 1; i++) { + right = line[i + 1]; + // -1 4 -1 kernel + line[i - 1] = center * 2 - left - right & 255; + left = center; + center = right; + } + return line; +}; + +function determineOtsuThreshold(imageWrapper, bitsPerPixel) { + if (!bitsPerPixel) { + bitsPerPixel = 8; + } + var hist, + threshold, + bitShift = 8 - bitsPerPixel; + + function px(init, end) { + var sum = 0, + i; + for (i = init; i <= end; i++) { + sum += hist[i]; + } + return sum; + } + + function mx(init, end) { + var i, + sum = 0; + + for (i = init; i <= end; i++) { + sum += i * hist[i]; + } + + return sum; + } + + function determineThreshold() { + var vet = [0], + p1, + p2, + p12, + k, + m1, + m2, + m12, + max = (1 << bitsPerPixel) - 1; + + hist = computeHistogram(imageWrapper, bitsPerPixel); + for (k = 1; k < max; k++) { + p1 = px(0, k); + p2 = px(k + 1, max); + p12 = p1 * p2; + if (p12 === 0) { + p12 = 1; + } + m1 = mx(0, k) * p2; + m2 = mx(k + 1, max) * p1; + m12 = m1 - m2; + vet[k] = m12 * m12 / p12; + } + return __WEBPACK_IMPORTED_MODULE_1__array_helper__["a" /* default */].maxIndex(vet); + } + + threshold = determineThreshold(); + return threshold << bitShift; +}; + +function otsuThreshold(imageWrapper, targetWrapper) { + var threshold = determineOtsuThreshold(imageWrapper); + + thresholdImage(imageWrapper, threshold, targetWrapper); + return threshold; +}; + +// local thresholding +function computeBinaryImage(imageWrapper, integralWrapper, targetWrapper) { + computeIntegralImage(imageWrapper, integralWrapper); + + if (!targetWrapper) { + targetWrapper = imageWrapper; + } + var imageData = imageWrapper.data; + var targetData = targetWrapper.data; + var width = imageWrapper.size.x; + var height = imageWrapper.size.y; + var integralImageData = integralWrapper.data; + var sum = 0, + v, + u, + kernel = 3, + A, + B, + C, + D, + avg, + size = (kernel * 2 + 1) * (kernel * 2 + 1); + + // clear out top & bottom-border + for (v = 0; v <= kernel; v++) { + for (u = 0; u < width; u++) { + targetData[v * width + u] = 0; + targetData[(height - 1 - v) * width + u] = 0; + } + } + + // clear out left & right border + for (v = kernel; v < height - kernel; v++) { + for (u = 0; u <= kernel; u++) { + targetData[v * width + u] = 0; + targetData[v * width + (width - 1 - u)] = 0; + } + } + + for (v = kernel + 1; v < height - kernel - 1; v++) { + for (u = kernel + 1; u < width - kernel; u++) { + A = integralImageData[(v - kernel - 1) * width + (u - kernel - 1)]; + B = integralImageData[(v - kernel - 1) * width + (u + kernel)]; + C = integralImageData[(v + kernel) * width + (u - kernel - 1)]; + D = integralImageData[(v + kernel) * width + (u + kernel)]; + sum = D - C - B + A; + avg = sum / size; + targetData[v * width + u] = imageData[v * width + u] > avg + 5 ? 0 : 1; + } + } +}; + +function cluster(points, threshold, property) { + var i, + k, + cluster, + point, + clusters = []; + + if (!property) { + property = "rad"; + } + + function addToCluster(newPoint) { + var found = false; + for (k = 0; k < clusters.length; k++) { + cluster = clusters[k]; + if (cluster.fits(newPoint)) { + cluster.add(newPoint); + found = true; + } + } + return found; + } + + // iterate over each cloud + for (i = 0; i < points.length; i++) { + point = __WEBPACK_IMPORTED_MODULE_0__cluster__["a" /* default */].createPoint(points[i], i, property); + if (!addToCluster(point)) { + clusters.push(__WEBPACK_IMPORTED_MODULE_0__cluster__["a" /* default */].create(point, threshold)); + } + } + return clusters; +}; + +var Tracer = { + trace: function trace(points, vec) { + var iteration, + maxIterations = 10, + top = [], + result = [], + centerPos = 0, + currentPos = 0; + + function trace(idx, forward) { + var from, + to, + toIdx, + predictedPos, + thresholdX = 1, + thresholdY = Math.abs(vec[1] / 10), + found = false; + + function match(pos, predicted) { + if (pos.x > predicted.x - thresholdX && pos.x < predicted.x + thresholdX && pos.y > predicted.y - thresholdY && pos.y < predicted.y + thresholdY) { + return true; + } else { + return false; + } + } + + // check if the next index is within the vec specifications + // if not, check as long as the threshold is met + + from = points[idx]; + if (forward) { + predictedPos = { + x: from.x + vec[0], + y: from.y + vec[1] + }; + } else { + predictedPos = { + x: from.x - vec[0], + y: from.y - vec[1] + }; + } + + toIdx = forward ? idx + 1 : idx - 1; + to = points[toIdx]; + while (to && (found = match(to, predictedPos)) !== true && Math.abs(to.y - from.y) < vec[1]) { + toIdx = forward ? toIdx + 1 : toIdx - 1; + to = points[toIdx]; + } + + return found ? toIdx : null; + } + + for (iteration = 0; iteration < maxIterations; iteration++) { + // randomly select point to start with + centerPos = Math.floor(Math.random() * points.length); + + // trace forward + top = []; + currentPos = centerPos; + top.push(points[currentPos]); + while ((currentPos = trace(currentPos, true)) !== null) { + top.push(points[currentPos]); + } + if (centerPos > 0) { + currentPos = centerPos; + while ((currentPos = trace(currentPos, false)) !== null) { + top.push(points[currentPos]); + } + } + + if (top.length > result.length) { + result = top; + } + } + return result; + } +}; + +var DILATE = 1; +var ERODE = 2; + +function dilate(inImageWrapper, outImageWrapper) { + var v, + u, + inImageData = inImageWrapper.data, + outImageData = outImageWrapper.data, + height = inImageWrapper.size.y, + width = inImageWrapper.size.x, + sum, + yStart1, + yStart2, + xStart1, + xStart2; + + for (v = 1; v < height - 1; v++) { + for (u = 1; u < width - 1; u++) { + yStart1 = v - 1; + yStart2 = v + 1; + xStart1 = u - 1; + xStart2 = u + 1; + sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] + inImageData[v * width + u] + inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2]; + outImageData[v * width + u] = sum > 0 ? 1 : 0; + } + } +}; + +function erode(inImageWrapper, outImageWrapper) { + var v, + u, + inImageData = inImageWrapper.data, + outImageData = outImageWrapper.data, + height = inImageWrapper.size.y, + width = inImageWrapper.size.x, + sum, + yStart1, + yStart2, + xStart1, + xStart2; + + for (v = 1; v < height - 1; v++) { + for (u = 1; u < width - 1; u++) { + yStart1 = v - 1; + yStart2 = v + 1; + xStart1 = u - 1; + xStart2 = u + 1; + sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] + inImageData[v * width + u] + inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2]; + outImageData[v * width + u] = sum === 5 ? 1 : 0; + } + } +}; + +function subtract(aImageWrapper, bImageWrapper, resultImageWrapper) { + if (!resultImageWrapper) { + resultImageWrapper = aImageWrapper; + } + var length = aImageWrapper.data.length, + aImageData = aImageWrapper.data, + bImageData = bImageWrapper.data, + cImageData = resultImageWrapper.data; + + while (length--) { + cImageData[length] = aImageData[length] - bImageData[length]; + } +}; + +function bitwiseOr(aImageWrapper, bImageWrapper, resultImageWrapper) { + if (!resultImageWrapper) { + resultImageWrapper = aImageWrapper; + } + var length = aImageWrapper.data.length, + aImageData = aImageWrapper.data, + bImageData = bImageWrapper.data, + cImageData = resultImageWrapper.data; + + while (length--) { + cImageData[length] = aImageData[length] || bImageData[length]; + } +}; + +function countNonZero(imageWrapper) { + var length = imageWrapper.data.length, + data = imageWrapper.data, + sum = 0; + + while (length--) { + sum += data[length]; + } + return sum; +}; + +function topGeneric(list, top, scoreFunc) { + var i, + minIdx = 0, + min = 0, + queue = [], + score, + hit, + pos; + + for (i = 0; i < top; i++) { + queue[i] = { + score: 0, + item: null + }; + } + + for (i = 0; i < list.length; i++) { + score = scoreFunc.apply(this, [list[i]]); + if (score > min) { + hit = queue[minIdx]; + hit.score = score; + hit.item = list[i]; + min = Number.MAX_VALUE; + for (pos = 0; pos < top; pos++) { + if (queue[pos].score < min) { + min = queue[pos].score; + minIdx = pos; + } + } + } + } + + return queue; +}; + +function grayArrayFromImage(htmlImage, offsetX, ctx, array) { + ctx.drawImage(htmlImage, offsetX, 0, htmlImage.width, htmlImage.height); + var ctxData = ctx.getImageData(offsetX, 0, htmlImage.width, htmlImage.height).data; + computeGray(ctxData, array); +}; + +function grayArrayFromContext(ctx, size, offset, array) { + var ctxData = ctx.getImageData(offset.x, offset.y, size.x, size.y).data; + computeGray(ctxData, array); +}; + +function grayAndHalfSampleFromCanvasData(canvasData, size, outArray) { + var topRowIdx = 0; + var bottomRowIdx = size.x; + var endIdx = Math.floor(canvasData.length / 4); + var outWidth = size.x / 2; + var outImgIdx = 0; + var inWidth = size.x; + var i; + + while (bottomRowIdx < endIdx) { + for (i = 0; i < outWidth; i++) { + outArray[outImgIdx] = (0.299 * canvasData[topRowIdx * 4 + 0] + 0.587 * canvasData[topRowIdx * 4 + 1] + 0.114 * canvasData[topRowIdx * 4 + 2] + (0.299 * canvasData[(topRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(topRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(topRowIdx + 1) * 4 + 2]) + (0.299 * canvasData[bottomRowIdx * 4 + 0] + 0.587 * canvasData[bottomRowIdx * 4 + 1] + 0.114 * canvasData[bottomRowIdx * 4 + 2]) + (0.299 * canvasData[(bottomRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(bottomRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(bottomRowIdx + 1) * 4 + 2])) / 4; + outImgIdx++; + topRowIdx = topRowIdx + 2; + bottomRowIdx = bottomRowIdx + 2; + } + topRowIdx = topRowIdx + inWidth; + bottomRowIdx = bottomRowIdx + inWidth; + } +}; + +function computeGray(imageData, outArray, config) { + var l = imageData.length / 4 | 0, + i, + singleChannel = config && config.singleChannel === true; + + if (singleChannel) { + for (i = 0; i < l; i++) { + outArray[i] = imageData[i * 4 + 0]; + } + } else { + for (i = 0; i < l; i++) { + outArray[i] = 0.299 * imageData[i * 4 + 0] + 0.587 * imageData[i * 4 + 1] + 0.114 * imageData[i * 4 + 2]; + } + } +}; + +function loadImageArray(src, callback, canvas) { + if (!canvas) { + canvas = document.createElement('canvas'); + } + var img = new Image(); + img.callback = callback; + img.onload = function () { + canvas.width = this.width; + canvas.height = this.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(this, 0, 0); + var array = new Uint8Array(this.width * this.height); + ctx.drawImage(this, 0, 0); + var data = ctx.getImageData(0, 0, this.width, this.height).data; + computeGray(data, array); + this.callback(array, { + x: this.width, + y: this.height + }, this); + }; + img.src = src; +}; + +/** + * @param inImg {ImageWrapper} input image to be sampled + * @param outImg {ImageWrapper} to be stored in + */ +function halfSample(inImgWrapper, outImgWrapper) { + var inImg = inImgWrapper.data; + var inWidth = inImgWrapper.size.x; + var outImg = outImgWrapper.data; + var topRowIdx = 0; + var bottomRowIdx = inWidth; + var endIdx = inImg.length; + var outWidth = inWidth / 2; + var outImgIdx = 0; + while (bottomRowIdx < endIdx) { + for (var i = 0; i < outWidth; i++) { + outImg[outImgIdx] = Math.floor((inImg[topRowIdx] + inImg[topRowIdx + 1] + inImg[bottomRowIdx] + inImg[bottomRowIdx + 1]) / 4); + outImgIdx++; + topRowIdx = topRowIdx + 2; + bottomRowIdx = bottomRowIdx + 2; + } + topRowIdx = topRowIdx + inWidth; + bottomRowIdx = bottomRowIdx + inWidth; + } +}; + +function hsv2rgb(hsv, rgb) { + var h = hsv[0], + s = hsv[1], + v = hsv[2], + c = v * s, + x = c * (1 - Math.abs(h / 60 % 2 - 1)), + m = v - c, + r = 0, + g = 0, + b = 0; + + rgb = rgb || [0, 0, 0]; + + if (h < 60) { + r = c; + g = x; + } else if (h < 120) { + r = x; + g = c; + } else if (h < 180) { + g = c; + b = x; + } else if (h < 240) { + g = x; + b = c; + } else if (h < 300) { + r = x; + b = c; + } else if (h < 360) { + r = c; + b = x; + } + rgb[0] = (r + m) * 255 | 0; + rgb[1] = (g + m) * 255 | 0; + rgb[2] = (b + m) * 255 | 0; + return rgb; +}; + +function _computeDivisors(n) { + var largeDivisors = [], + divisors = [], + i; + + for (i = 1; i < Math.sqrt(n) + 1; i++) { + if (n % i === 0) { + divisors.push(i); + if (i !== n / i) { + largeDivisors.unshift(Math.floor(n / i)); + } + } + } + return divisors.concat(largeDivisors); +}; + +function _computeIntersection(arr1, arr2) { + var i = 0, + j = 0, + result = []; + + while (i < arr1.length && j < arr2.length) { + if (arr1[i] === arr2[j]) { + result.push(arr1[i]); + i++; + j++; + } else if (arr1[i] > arr2[j]) { + j++; + } else { + i++; + } + } + return result; +}; + +function calculatePatchSize(patchSize, imgSize) { + var divisorsX = _computeDivisors(imgSize.x), + divisorsY = _computeDivisors(imgSize.y), + wideSide = Math.max(imgSize.x, imgSize.y), + common = _computeIntersection(divisorsX, divisorsY), + nrOfPatchesList = [8, 10, 15, 20, 32, 60, 80], + nrOfPatchesMap = { + "x-small": 5, + "small": 4, + "medium": 3, + "large": 2, + "x-large": 1 + }, + nrOfPatchesIdx = nrOfPatchesMap[patchSize] || nrOfPatchesMap.medium, + nrOfPatches = nrOfPatchesList[nrOfPatchesIdx], + desiredPatchSize = Math.floor(wideSide / nrOfPatches), + optimalPatchSize; + + function findPatchSizeForDivisors(divisors) { + var i = 0, + found = divisors[Math.floor(divisors.length / 2)]; + + while (i < divisors.length - 1 && divisors[i] < desiredPatchSize) { + i++; + } + if (i > 0) { + if (Math.abs(divisors[i] - desiredPatchSize) > Math.abs(divisors[i - 1] - desiredPatchSize)) { + found = divisors[i - 1]; + } else { + found = divisors[i]; + } + } + if (desiredPatchSize / found < nrOfPatchesList[nrOfPatchesIdx + 1] / nrOfPatchesList[nrOfPatchesIdx] && desiredPatchSize / found > nrOfPatchesList[nrOfPatchesIdx - 1] / nrOfPatchesList[nrOfPatchesIdx]) { + return { x: found, y: found }; + } + return null; + } + + optimalPatchSize = findPatchSizeForDivisors(common); + if (!optimalPatchSize) { + optimalPatchSize = findPatchSizeForDivisors(_computeDivisors(wideSide)); + if (!optimalPatchSize) { + optimalPatchSize = findPatchSizeForDivisors(_computeDivisors(desiredPatchSize * nrOfPatches)); + } + } + return optimalPatchSize; +}; + +function _parseCSSDimensionValues(value) { + var dimension = { + value: parseFloat(value), + unit: value.indexOf("%") === value.length - 1 ? "%" : "%" + }; + + return dimension; +}; + +var _dimensionsConverters = { + top: function top(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.height * (dimension.value / 100)); + } + }, + right: function right(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.width - context.width * (dimension.value / 100)); + } + }, + bottom: function bottom(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.height - context.height * (dimension.value / 100)); + } + }, + left: function left(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.width * (dimension.value / 100)); + } + } +}; + +function computeImageArea(inputWidth, inputHeight, area) { + var context = { width: inputWidth, height: inputHeight }; + + var parsedArea = Object.keys(area).reduce(function (result, key) { + var value = area[key], + parsed = _parseCSSDimensionValues(value), + calculated = _dimensionsConverters[key](parsed, context); + + result[key] = calculated; + return result; + }, {}); + + return { + sx: parsedArea.left, + sy: parsedArea.top, + sw: parsedArea.right - parsedArea.left, + sh: parsedArea.bottom - parsedArea.top + }; +}; + +/***/ }), +/* 20 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__subImage__ = __webpack_require__(53); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(3); + + + +var vec2 = { + clone: __webpack_require__(7) +}; + +/** + * Represents a basic image combining the data and size. + * In addition, some methods for manipulation are contained. + * @param size {x,y} The size of the image in pixel + * @param data {Array} If given, a flat array containing the pixel data + * @param ArrayType {Type} If given, the desired DataType of the Array (may be typed/non-typed) + * @param initialize {Boolean} Indicating if the array should be initialized on creation. + * @returns {ImageWrapper} + */ +function ImageWrapper(size, data, ArrayType, initialize) { + if (!data) { + if (ArrayType) { + this.data = new ArrayType(size.x * size.y); + if (ArrayType === Array && initialize) { + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(this.data, 0); + } + } else { + this.data = new Uint8Array(size.x * size.y); + if (Uint8Array === Array && initialize) { + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(this.data, 0); + } + } + } else { + this.data = data; + } + this.size = size; +} + +/** + * tests if a position is within the image with a given offset + * @param imgRef {x, y} The location to test + * @param border Number the padding value in pixel + * @returns {Boolean} true if location inside the image's border, false otherwise + * @see cvd/image.h + */ +ImageWrapper.prototype.inImageWithBorder = function (imgRef, border) { + return imgRef.x >= border && imgRef.y >= border && imgRef.x < this.size.x - border && imgRef.y < this.size.y - border; +}; + +/** + * Performs bilinear sampling + * @param inImg Image to extract sample from + * @param x the x-coordinate + * @param y the y-coordinate + * @returns the sampled value + * @see cvd/vision.h + */ +ImageWrapper.sample = function (inImg, x, y) { + var lx = Math.floor(x); + var ly = Math.floor(y); + var w = inImg.size.x; + var base = ly * inImg.size.x + lx; + var a = inImg.data[base + 0]; + var b = inImg.data[base + 1]; + var c = inImg.data[base + w]; + var d = inImg.data[base + w + 1]; + var e = a - b; + x -= lx; + y -= ly; + + var result = Math.floor(x * (y * (e - c + d) - e) + y * (c - a) + a); + return result; +}; + +/** + * Initializes a given array. Sets each element to zero. + * @param array {Array} The array to initialize + */ +ImageWrapper.clearArray = function (array) { + var l = array.length; + while (l--) { + array[l] = 0; + } +}; + +/** + * Creates a {SubImage} from the current image ({this}). + * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner) + * @param size {ImageRef} The size of the resulting image + * @returns {SubImage} A shared part of the original image + */ +ImageWrapper.prototype.subImage = function (from, size) { + return new __WEBPACK_IMPORTED_MODULE_0__subImage__["a" /* default */](from, size, this); +}; + +/** + * Creates an {ImageWrapper) and copies the needed underlying image-data area + * @param imageWrapper {ImageWrapper} The target {ImageWrapper} where the data should be copied + * @param from {ImageRef} The location where to copy from (top-left location) + */ +ImageWrapper.prototype.subImageAsCopy = function (imageWrapper, from) { + var sizeY = imageWrapper.size.y, + sizeX = imageWrapper.size.x; + var x, y; + for (x = 0; x < sizeX; x++) { + for (y = 0; y < sizeY; y++) { + imageWrapper.data[y * sizeX + x] = this.data[(from.y + y) * this.size.x + from.x + x]; + } + } +}; + +ImageWrapper.prototype.copyTo = function (imageWrapper) { + var length = this.data.length, + srcData = this.data, + dstData = imageWrapper.data; + + while (length--) { + dstData[length] = srcData[length]; + } +}; + +/** + * Retrieves a given pixel position from the image + * @param x {Number} The x-position + * @param y {Number} The y-position + * @returns {Number} The grayscale value at the pixel-position + */ +ImageWrapper.prototype.get = function (x, y) { + return this.data[y * this.size.x + x]; +}; + +/** + * Retrieves a given pixel position from the image + * @param x {Number} The x-position + * @param y {Number} The y-position + * @returns {Number} The grayscale value at the pixel-position + */ +ImageWrapper.prototype.getSafe = function (x, y) { + var i; + + if (!this.indexMapping) { + this.indexMapping = { + x: [], + y: [] + }; + for (i = 0; i < this.size.x; i++) { + this.indexMapping.x[i] = i; + this.indexMapping.x[i + this.size.x] = i; + } + for (i = 0; i < this.size.y; i++) { + this.indexMapping.y[i] = i; + this.indexMapping.y[i + this.size.y] = i; + } + } + return this.data[this.indexMapping.y[y + this.size.y] * this.size.x + this.indexMapping.x[x + this.size.x]]; +}; + +/** + * Sets a given pixel position in the image + * @param x {Number} The x-position + * @param y {Number} The y-position + * @param value {Number} The grayscale value to set + * @returns {ImageWrapper} The Image itself (for possible chaining) + */ +ImageWrapper.prototype.set = function (x, y, value) { + this.data[y * this.size.x + x] = value; + return this; +}; + +/** + * Sets the border of the image (1 pixel) to zero + */ +ImageWrapper.prototype.zeroBorder = function () { + var i, + width = this.size.x, + height = this.size.y, + data = this.data; + for (i = 0; i < width; i++) { + data[i] = data[(height - 1) * width + i] = 0; + } + for (i = 1; i < height - 1; i++) { + data[i * width] = data[i * width + (width - 1)] = 0; + } +}; + +/** + * Inverts a binary image in place + */ +ImageWrapper.prototype.invert = function () { + var data = this.data, + length = data.length; + + while (length--) { + data[length] = data[length] ? 0 : 1; + } +}; + +ImageWrapper.prototype.convolve = function (kernel) { + var x, + y, + kx, + ky, + kSize = kernel.length / 2 | 0, + accu = 0; + for (y = 0; y < this.size.y; y++) { + for (x = 0; x < this.size.x; x++) { + accu = 0; + for (ky = -kSize; ky <= kSize; ky++) { + for (kx = -kSize; kx <= kSize; kx++) { + accu += kernel[ky + kSize][kx + kSize] * this.getSafe(x + kx, y + ky); + } + } + this.data[y * this.size.x + x] = accu; + } + } +}; + +ImageWrapper.prototype.moments = function (labelcount) { + var data = this.data, + x, + y, + height = this.size.y, + width = this.size.x, + val, + ysq, + labelsum = [], + i, + label, + mu11, + mu02, + mu20, + x_, + y_, + tmp, + result = [], + PI = Math.PI, + PI_4 = PI / 4; + + if (labelcount <= 0) { + return result; + } + + for (i = 0; i < labelcount; i++) { + labelsum[i] = { + m00: 0, + m01: 0, + m10: 0, + m11: 0, + m02: 0, + m20: 0, + theta: 0, + rad: 0 + }; + } + + for (y = 0; y < height; y++) { + ysq = y * y; + for (x = 0; x < width; x++) { + val = data[y * width + x]; + if (val > 0) { + label = labelsum[val - 1]; + label.m00 += 1; + label.m01 += y; + label.m10 += x; + label.m11 += x * y; + label.m02 += ysq; + label.m20 += x * x; + } + } + } + + for (i = 0; i < labelcount; i++) { + label = labelsum[i]; + if (!isNaN(label.m00) && label.m00 !== 0) { + x_ = label.m10 / label.m00; + y_ = label.m01 / label.m00; + mu11 = label.m11 / label.m00 - x_ * y_; + mu02 = label.m02 / label.m00 - y_ * y_; + mu20 = label.m20 / label.m00 - x_ * x_; + tmp = (mu02 - mu20) / (2 * mu11); + tmp = 0.5 * Math.atan(tmp) + (mu11 >= 0 ? PI_4 : -PI_4) + PI; + label.theta = (tmp * 180 / PI + 90) % 180 - 90; + if (label.theta < 0) { + label.theta += 180; + } + label.rad = tmp > PI ? tmp - PI : tmp; + label.vec = vec2.clone([Math.cos(tmp), Math.sin(tmp)]); + result.push(label); + } + } + + return result; +}; + +/** + * Displays the {ImageWrapper} in a given canvas + * @param canvas {Canvas} The canvas element to write to + * @param scale {Number} Scale which is applied to each pixel-value + */ +ImageWrapper.prototype.show = function (canvas, scale) { + var ctx, frame, data, current, pixel, x, y; + + if (!scale) { + scale = 1.0; + } + ctx = canvas.getContext('2d'); + canvas.width = this.size.x; + canvas.height = this.size.y; + frame = ctx.getImageData(0, 0, canvas.width, canvas.height); + data = frame.data; + current = 0; + for (y = 0; y < this.size.y; y++) { + for (x = 0; x < this.size.x; x++) { + pixel = y * this.size.x + x; + current = this.get(x, y) * scale; + data[pixel * 4 + 0] = current; + data[pixel * 4 + 1] = current; + data[pixel * 4 + 2] = current; + data[pixel * 4 + 3] = 255; + } + } + //frame.data = data; + ctx.putImageData(frame, 0, 0); +}; + +/** + * Displays the {SubImage} in a given canvas + * @param canvas {Canvas} The canvas element to write to + * @param scale {Number} Scale which is applied to each pixel-value + */ +ImageWrapper.prototype.overlay = function (canvas, scale, from) { + if (!scale || scale < 0 || scale > 360) { + scale = 360; + } + var hsv = [0, 1, 1]; + var rgb = [0, 0, 0]; + var whiteRgb = [255, 255, 255]; + var blackRgb = [0, 0, 0]; + var result = []; + var ctx = canvas.getContext('2d'); + var frame = ctx.getImageData(from.x, from.y, this.size.x, this.size.y); + var data = frame.data; + var length = this.data.length; + while (length--) { + hsv[0] = this.data[length] * scale; + result = hsv[0] <= 0 ? whiteRgb : hsv[0] >= 360 ? blackRgb : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["a" /* hsv2rgb */])(hsv, rgb); + data[length * 4 + 0] = result[0]; + data[length * 4 + 1] = result[1]; + data[length * 4 + 2] = result[2]; + data[length * 4 + 3] = 255; + } + ctx.putImageData(frame, from.x, from.y); +}; + +/* harmony default export */ __webpack_exports__["a"] = ImageWrapper; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +var defineProperty = __webpack_require__(37); + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +module.exports = baseAssignValue; + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsNative = __webpack_require__(97), + getValue = __webpack_require__(120); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +var isSymbol = __webpack_require__(27); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(25), + isLength = __webpack_require__(26); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isObject = __webpack_require__(0); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseMerge = __webpack_require__(100), + createAssigner = __webpack_require__(116); + +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ +var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); +}); + +module.exports = merge; + + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { + +module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if(!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/** + * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization + */ +var Tracer = { + searchDirections: [[0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1], [-1, 0], [-1, 1]], + create: function create(imageWrapper, labelWrapper) { + var imageData = imageWrapper.data, + labelData = labelWrapper.data, + searchDirections = this.searchDirections, + width = imageWrapper.size.x, + pos; + + function _trace(current, color, label, edgelabel) { + var i, y, x; + + for (i = 0; i < 7; i++) { + y = current.cy + searchDirections[current.dir][0]; + x = current.cx + searchDirections[current.dir][1]; + pos = y * width + x; + if (imageData[pos] === color && (labelData[pos] === 0 || labelData[pos] === label)) { + labelData[pos] = label; + current.cy = y; + current.cx = x; + return true; + } else { + if (labelData[pos] === 0) { + labelData[pos] = edgelabel; + } + current.dir = (current.dir + 1) % 8; + } + } + return false; + } + + function vertex2D(x, y, dir) { + return { + dir: dir, + x: x, + y: y, + next: null, + prev: null + }; + } + + function _contourTracing(sy, sx, label, color, edgelabel) { + var Fv = null, + Cv, + P, + ldir, + current = { + cx: sx, + cy: sy, + dir: 0 + }; + + if (_trace(current, color, label, edgelabel)) { + Fv = vertex2D(sx, sy, current.dir); + Cv = Fv; + ldir = current.dir; + P = vertex2D(current.cx, current.cy, 0); + P.prev = Cv; + Cv.next = P; + P.next = null; + Cv = P; + do { + current.dir = (current.dir + 6) % 8; + _trace(current, color, label, edgelabel); + if (ldir !== current.dir) { + Cv.dir = current.dir; + P = vertex2D(current.cx, current.cy, 0); + P.prev = Cv; + Cv.next = P; + P.next = null; + Cv = P; + } else { + Cv.dir = ldir; + Cv.x = current.cx; + Cv.y = current.cy; + } + ldir = current.dir; + } while (current.cx !== sx || current.cy !== sy); + Fv.prev = Cv.prev; + Cv.prev.next = Fv; + } + return Fv; + } + + return { + trace: function trace(current, color, label, edgelabel) { + return _trace(current, color, label, edgelabel); + }, + contourTracing: function contourTracing(sy, sx, label, color, edgelabel) { + return _contourTracing(sy, sx, label, color, edgelabel); + } + }; + } +}; + +/* harmony default export */ __webpack_exports__["a"] = Tracer; + +/***/ }), +/* 31 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(3); + + + +function Code39Reader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); +} + +var properties = { + ALPHABETH_STRING: { value: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%" }, + ALPHABET: { value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 45, 46, 32, 42, 36, 47, 43, 37] }, + CHARACTER_ENCODINGS: { value: [0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064, 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C, 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016, 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x094, 0x0A8, 0x0A2, 0x08A, 0x02A] }, + ASTERISK: { value: 0x094 }, + FORMAT: { value: "code_39", writeable: false } +}; + +Code39Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +Code39Reader.prototype.constructor = Code39Reader; + +Code39Reader.prototype._decode = function () { + var self = this, + counters = [0, 0, 0, 0, 0, 0, 0, 0, 0], + result = [], + start = self._findStart(), + decodedChar, + lastStart, + pattern, + nextStart; + + if (!start) { + return null; + } + nextStart = self._nextSet(self._row, start.end); + + do { + counters = self._toCounters(nextStart, counters); + pattern = self._toPattern(counters); + if (pattern < 0) { + return null; + } + decodedChar = self._patternToChar(pattern); + if (decodedChar < 0) { + return null; + } + result.push(decodedChar); + lastStart = nextStart; + nextStart += __WEBPACK_IMPORTED_MODULE_1__common_array_helper__["a" /* default */].sum(counters); + nextStart = self._nextSet(self._row, nextStart); + } while (decodedChar !== '*'); + result.pop(); + + if (!result.length) { + return null; + } + + if (!self._verifyTrailingWhitespace(lastStart, nextStart, counters)) { + return null; + } + + return { + code: result.join(""), + start: start.start, + end: nextStart, + startInfo: start, + decodedCodes: result + }; +}; + +Code39Reader.prototype._verifyTrailingWhitespace = function (lastStart, nextStart, counters) { + var trailingWhitespaceEnd, + patternSize = __WEBPACK_IMPORTED_MODULE_1__common_array_helper__["a" /* default */].sum(counters); + + trailingWhitespaceEnd = nextStart - lastStart - patternSize; + if (trailingWhitespaceEnd * 3 >= patternSize) { + return true; + } + return false; +}; + +Code39Reader.prototype._patternToChar = function (pattern) { + var i, + self = this; + + for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) { + if (self.CHARACTER_ENCODINGS[i] === pattern) { + return String.fromCharCode(self.ALPHABET[i]); + } + } + return -1; +}; + +Code39Reader.prototype._findNextWidth = function (counters, current) { + var i, + minWidth = Number.MAX_VALUE; + + for (i = 0; i < counters.length; i++) { + if (counters[i] < minWidth && counters[i] > current) { + minWidth = counters[i]; + } + } + + return minWidth; +}; + +Code39Reader.prototype._toPattern = function (counters) { + var numCounters = counters.length, + maxNarrowWidth = 0, + numWideBars = numCounters, + wideBarWidth = 0, + self = this, + pattern, + i; + + while (numWideBars > 3) { + maxNarrowWidth = self._findNextWidth(counters, maxNarrowWidth); + numWideBars = 0; + pattern = 0; + for (i = 0; i < numCounters; i++) { + if (counters[i] > maxNarrowWidth) { + pattern |= 1 << numCounters - 1 - i; + numWideBars++; + wideBarWidth += counters[i]; + } + } + + if (numWideBars === 3) { + for (i = 0; i < numCounters && numWideBars > 0; i++) { + if (counters[i] > maxNarrowWidth) { + numWideBars--; + if (counters[i] * 2 >= wideBarWidth) { + return -1; + } + } + } + return pattern; + } + } + return -1; +}; + +Code39Reader.prototype._findStart = function () { + var self = this, + offset = self._nextSet(self._row), + patternStart = offset, + counter = [0, 0, 0, 0, 0, 0, 0, 0, 0], + counterPos = 0, + isWhite = false, + i, + j, + whiteSpaceMustStart; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + // find start pattern + if (self._toPattern(counter) === self.ASTERISK) { + whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - (i - patternStart) / 4)); + if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) { + return { + start: patternStart, + end: i + }; + } + } + + patternStart += counter[0] + counter[1]; + for (j = 0; j < 7; j++) { + counter[j] = counter[j + 2]; + } + counter[7] = 0; + counter[8] = 0; + counterPos--; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +/* harmony default export */ __webpack_exports__["a"] = Code39Reader; + +/***/ }), +/* 32 */ +/***/ (function(module, exports) { + +module.exports = dot + +/** + * Calculates the dot product of two vec2's + * + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {Number} dot product of a and b + */ +function dot(a, b) { + return a[0] * b[0] + a[1] * b[1] +} + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(22), + root = __webpack_require__(5); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +var mapCacheClear = __webpack_require__(138), + mapCacheDelete = __webpack_require__(139), + mapCacheGet = __webpack_require__(140), + mapCacheHas = __webpack_require__(141), + mapCacheSet = __webpack_require__(142); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseAssignValue = __webpack_require__(21), + eq = __webpack_require__(17); + +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignMergeValue; + + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseAssignValue = __webpack_require__(21), + eq = __webpack_require__(17); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignValue; + + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(22); + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +module.exports = defineProperty; + + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47))) + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +var overArg = __webpack_require__(147); + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +module.exports = getPrototype; + + +/***/ }), +/* 40 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +var apply = __webpack_require__(87); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +module.exports = overRest; + + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseSetToString = __webpack_require__(106), + shortOut = __webpack_require__(148); + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +module.exports = setToString; + + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(5), + stubFalse = __webpack_require__(163); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(29)(module))) + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsTypedArray = __webpack_require__(98), + baseUnary = __webpack_require__(109), + nodeUtil = __webpack_require__(145); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeKeys = __webpack_require__(88), + baseKeysIn = __webpack_require__(99), + isArrayLike = __webpack_require__(24); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +module.exports = keysIn; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 48 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_typedefs__ = __webpack_require__(54); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_typedefs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__common_typedefs__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__ = __webpack_require__(20); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__ = __webpack_require__(64); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__decoder_barcode_decoder__ = __webpack_require__(57); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__common_events__ = __webpack_require__(51); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__input_camera_access__ = __webpack_require__(59); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__common_image_debug__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__analytics_result_collector__ = __webpack_require__(49); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__config_config__ = __webpack_require__(56); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_input_stream__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_frame_grabber__ = __webpack_require__(61); + + +var _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; }; + + // eslint-disable-line no-unused-vars + + + + + + + + + + + +var vec2 = { + clone: __webpack_require__(7) +}; + +var _inputStream, + _framegrabber, + _stopped, + _canvasContainer = { + ctx: { + image: null, + overlay: null + }, + dom: { + image: null, + overlay: null + } +}, + _inputImageWrapper, + _boxSize, + _decoder, + _workerPool = [], + _onUIThread = true, + _resultCollector, + _config = {}; + +function initializeData(imageWrapper) { + initBuffers(imageWrapper); + _decoder = __WEBPACK_IMPORTED_MODULE_4__decoder_barcode_decoder__["a" /* default */].create(_config.decoder, _inputImageWrapper); +} + +function initInputStream(cb) { + var video; + if (_config.inputStream.type === "VideoStream") { + video = document.createElement("video"); + _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__["a" /* default */].createVideoStream(video); + } else if (_config.inputStream.type === "ImageStream") { + _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__["a" /* default */].createImageStream(); + } else if (_config.inputStream.type === "LiveStream") { + var $viewport = getViewPort(); + if ($viewport) { + video = $viewport.querySelector("video"); + if (!video) { + video = document.createElement("video"); + $viewport.appendChild(video); + } + } + _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__["a" /* default */].createLiveStream(video); + __WEBPACK_IMPORTED_MODULE_6__input_camera_access__["a" /* default */].request(video, _config.inputStream.constraints).then(function () { + _inputStream.trigger("canrecord"); + }).catch(function (err) { + return cb(err); + }); + } + _inputStream.setAttribute("preload", "auto"); + _inputStream.setInputStream(_config.inputStream); + _inputStream.addEventListener("canrecord", canRecord.bind(undefined, cb)); +} + +function getViewPort() { + var target = _config.inputStream.target; + // Check if target is already a DOM element + if (target && target.nodeName && target.nodeType === 1) { + return target; + } else { + // Use '#interactive.viewport' as a fallback selector (backwards compatibility) + var selector = typeof target === 'string' ? target : '#interactive.viewport'; + return document.querySelector(selector); + } +} + +function canRecord(cb) { + __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__["a" /* default */].checkImageConstraints(_inputStream, _config.locator); + initCanvas(_config); + _framegrabber = __WEBPACK_IMPORTED_MODULE_11_frame_grabber__["a" /* default */].create(_inputStream, _canvasContainer.dom.image); + + adjustWorkerPool(_config.numOfWorkers, function () { + if (_config.numOfWorkers === 0) { + initializeData(); + } + ready(cb); + }); +} + +function ready(cb) { + _inputStream.play(); + cb(); +} + +function initCanvas() { + if (typeof document !== "undefined") { + var $viewport = getViewPort(); + _canvasContainer.dom.image = document.querySelector("canvas.imgBuffer"); + if (!_canvasContainer.dom.image) { + _canvasContainer.dom.image = document.createElement("canvas"); + _canvasContainer.dom.image.className = "imgBuffer"; + if ($viewport && _config.inputStream.type === "ImageStream") { + $viewport.appendChild(_canvasContainer.dom.image); + } + } + _canvasContainer.ctx.image = _canvasContainer.dom.image.getContext("2d"); + _canvasContainer.dom.image.width = _inputStream.getCanvasSize().x; + _canvasContainer.dom.image.height = _inputStream.getCanvasSize().y; + + _canvasContainer.dom.overlay = document.querySelector("canvas.drawingBuffer"); + if (!_canvasContainer.dom.overlay) { + _canvasContainer.dom.overlay = document.createElement("canvas"); + _canvasContainer.dom.overlay.className = "drawingBuffer"; + if ($viewport) { + $viewport.appendChild(_canvasContainer.dom.overlay); + } + var clearFix = document.createElement("br"); + clearFix.setAttribute("clear", "all"); + if ($viewport) { + $viewport.appendChild(clearFix); + } + } + _canvasContainer.ctx.overlay = _canvasContainer.dom.overlay.getContext("2d"); + _canvasContainer.dom.overlay.width = _inputStream.getCanvasSize().x; + _canvasContainer.dom.overlay.height = _inputStream.getCanvasSize().y; + } +} + +function initBuffers(imageWrapper) { + if (imageWrapper) { + _inputImageWrapper = imageWrapper; + } else { + _inputImageWrapper = new __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__["a" /* default */]({ + x: _inputStream.getWidth(), + y: _inputStream.getHeight() + }); + } + + if (true) { + console.log(_inputImageWrapper.size); + } + _boxSize = [vec2.clone([0, 0]), vec2.clone([0, _inputImageWrapper.size.y]), vec2.clone([_inputImageWrapper.size.x, _inputImageWrapper.size.y]), vec2.clone([_inputImageWrapper.size.x, 0])]; + __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__["a" /* default */].init(_inputImageWrapper, _config.locator); +} + +function getBoundingBoxes() { + if (_config.locate) { + return __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__["a" /* default */].locate(); + } else { + return [[vec2.clone(_boxSize[0]), vec2.clone(_boxSize[1]), vec2.clone(_boxSize[2]), vec2.clone(_boxSize[3])]]; + } +} + +function transformResult(result) { + var topRight = _inputStream.getTopRight(), + xOffset = topRight.x, + yOffset = topRight.y, + i; + + if (xOffset === 0 && yOffset === 0) { + return; + } + + if (result.barcodes) { + for (i = 0; i < result.barcodes.length; i++) { + transformResult(result.barcodes[i]); + } + } + + if (result.line && result.line.length === 2) { + moveLine(result.line); + } + + if (result.box) { + moveBox(result.box); + } + + if (result.boxes && result.boxes.length > 0) { + for (i = 0; i < result.boxes.length; i++) { + moveBox(result.boxes[i]); + } + } + + function moveBox(box) { + var corner = box.length; + + while (corner--) { + box[corner][0] += xOffset; + box[corner][1] += yOffset; + } + } + + function moveLine(line) { + line[0].x += xOffset; + line[0].y += yOffset; + line[1].x += xOffset; + line[1].y += yOffset; + } +} + +function addResult(result, imageData) { + if (!imageData || !_resultCollector) { + return; + } + + if (result.barcodes) { + result.barcodes.filter(function (barcode) { + return barcode.codeResult; + }).forEach(function (barcode) { + return addResult(barcode, imageData); + }); + } else if (result.codeResult) { + _resultCollector.addResult(imageData, _inputStream.getCanvasSize(), result.codeResult); + } +} + +function hasCodeResult(result) { + return result && (result.barcodes ? result.barcodes.some(function (barcode) { + return barcode.codeResult; + }) : result.codeResult); +} + +function publishResult(result, imageData) { + var resultToPublish = result; + + if (result && _onUIThread) { + transformResult(result); + addResult(result, imageData); + resultToPublish = result.barcodes || result; + } + + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].publish("processed", resultToPublish); + if (hasCodeResult(result)) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].publish("detected", resultToPublish); + } +} + +function locateAndDecode() { + var result, boxes; + + boxes = getBoundingBoxes(); + if (boxes) { + result = _decoder.decodeFromBoundingBoxes(boxes); + result = result || {}; + result.boxes = boxes; + publishResult(result, _inputImageWrapper.data); + } else { + publishResult(); + } +} + +function update() { + var availableWorker; + + if (_onUIThread) { + if (_workerPool.length > 0) { + availableWorker = _workerPool.filter(function (workerThread) { + return !workerThread.busy; + })[0]; + if (availableWorker) { + _framegrabber.attachData(availableWorker.imageData); + } else { + return; // all workers are busy + } + } else { + _framegrabber.attachData(_inputImageWrapper.data); + } + if (_framegrabber.grab()) { + if (availableWorker) { + availableWorker.busy = true; + availableWorker.worker.postMessage({ + cmd: 'process', + imageData: availableWorker.imageData + }, [availableWorker.imageData.buffer]); + } else { + locateAndDecode(); + } + } + } else { + locateAndDecode(); + } +} + +function startContinuousUpdate() { + var next = null, + delay = 1000 / (_config.frequency || 60); + + _stopped = false; + (function frame(timestamp) { + next = next || timestamp; + if (!_stopped) { + if (timestamp >= next) { + next += delay; + update(); + } + window.requestAnimFrame(frame); + } + })(performance.now()); +} + +function _start() { + if (_onUIThread && _config.inputStream.type === "LiveStream") { + startContinuousUpdate(); + } else { + update(); + } +} + +function initWorker(cb) { + var blobURL, + workerThread = { + worker: undefined, + imageData: new Uint8Array(_inputStream.getWidth() * _inputStream.getHeight()), + busy: true + }; + + blobURL = generateWorkerBlob(); + workerThread.worker = new Worker(blobURL); + + workerThread.worker.onmessage = function (e) { + if (e.data.event === 'initialized') { + URL.revokeObjectURL(blobURL); + workerThread.busy = false; + workerThread.imageData = new Uint8Array(e.data.imageData); + if (true) { + console.log("Worker initialized"); + } + return cb(workerThread); + } else if (e.data.event === 'processed') { + workerThread.imageData = new Uint8Array(e.data.imageData); + workerThread.busy = false; + publishResult(e.data.result, workerThread.imageData); + } else if (e.data.event === 'error') { + if (true) { + console.log("Worker error: " + e.data.message); + } + } + }; + + workerThread.worker.postMessage({ + cmd: 'init', + size: { x: _inputStream.getWidth(), y: _inputStream.getHeight() }, + imageData: workerThread.imageData, + config: configForWorker(_config) + }, [workerThread.imageData.buffer]); +} + +function configForWorker(config) { + return _extends({}, config, { + inputStream: _extends({}, config.inputStream, { + target: null + }) + }); +} + +function workerInterface(factory) { + /* eslint-disable no-undef*/ + if (factory) { + var Quagga = factory().default; + if (!Quagga) { + self.postMessage({ 'event': 'error', message: 'Quagga could not be created' }); + return; + } + } + var imageWrapper; + + self.onmessage = function (e) { + if (e.data.cmd === 'init') { + var config = e.data.config; + config.numOfWorkers = 0; + imageWrapper = new Quagga.ImageWrapper({ + x: e.data.size.x, + y: e.data.size.y + }, new Uint8Array(e.data.imageData)); + Quagga.init(config, ready, imageWrapper); + Quagga.onProcessed(onProcessed); + } else if (e.data.cmd === 'process') { + imageWrapper.data = new Uint8Array(e.data.imageData); + Quagga.start(); + } else if (e.data.cmd === 'setReaders') { + Quagga.setReaders(e.data.readers); + } + }; + + function onProcessed(result) { + self.postMessage({ + 'event': 'processed', + imageData: imageWrapper.data, + result: result + }, [imageWrapper.data.buffer]); + } + + function ready() { + // eslint-disable-line + self.postMessage({ 'event': 'initialized', imageData: imageWrapper.data }, [imageWrapper.data.buffer]); + } + + /* eslint-enable */ +} + +function generateWorkerBlob() { + var blob, factorySource; + + /* jshint ignore:start */ + if (typeof __factorySource__ !== 'undefined') { + factorySource = __factorySource__; // eslint-disable-line no-undef + } + /* jshint ignore:end */ + + blob = new Blob(['(' + workerInterface.toString() + ')(' + factorySource + ');'], { type: 'text/javascript' }); + + return window.URL.createObjectURL(blob); +} + +function _setReaders(readers) { + if (_decoder) { + _decoder.setReaders(readers); + } else if (_onUIThread && _workerPool.length > 0) { + _workerPool.forEach(function (workerThread) { + workerThread.worker.postMessage({ cmd: 'setReaders', readers: readers }); + }); + } +} + +function adjustWorkerPool(capacity, cb) { + var increaseBy = capacity - _workerPool.length; + if (increaseBy === 0) { + return cb && cb(); + } + if (increaseBy < 0) { + var workersToTerminate = _workerPool.slice(increaseBy); + workersToTerminate.forEach(function (workerThread) { + workerThread.worker.terminate(); + if (true) { + console.log("Worker terminated!"); + } + }); + _workerPool = _workerPool.slice(0, increaseBy); + return cb && cb(); + } else { + var workerInitialized = function workerInitialized(workerThread) { + _workerPool.push(workerThread); + if (_workerPool.length >= capacity) { + cb && cb(); + } + }; + + for (var i = 0; i < increaseBy; i++) { + initWorker(workerInitialized); + } + } +} + +/* harmony default export */ __webpack_exports__["default"] = { + init: function init(config, cb, imageWrapper) { + _config = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()({}, __WEBPACK_IMPORTED_MODULE_9__config_config__["a" /* default */], config); + if (imageWrapper) { + _onUIThread = false; + initializeData(imageWrapper); + return cb(); + } else { + initInputStream(cb); + } + }, + start: function start() { + _start(); + }, + stop: function stop() { + _stopped = true; + adjustWorkerPool(0); + if (_config.inputStream.type === "LiveStream") { + __WEBPACK_IMPORTED_MODULE_6__input_camera_access__["a" /* default */].release(); + _inputStream.clearEventHandlers(); + } + }, + pause: function pause() { + _stopped = true; + }, + onDetected: function onDetected(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].subscribe("detected", callback); + }, + offDetected: function offDetected(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].unsubscribe("detected", callback); + }, + onProcessed: function onProcessed(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].subscribe("processed", callback); + }, + offProcessed: function offProcessed(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].unsubscribe("processed", callback); + }, + setReaders: function setReaders(readers) { + _setReaders(readers); + }, + registerResultCollector: function registerResultCollector(resultCollector) { + if (resultCollector && typeof resultCollector.addResult === 'function') { + _resultCollector = resultCollector; + } + }, + canvas: _canvasContainer, + decodeSingle: function decodeSingle(config, resultCallback) { + var _this = this; + + config = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()({ + inputStream: { + type: "ImageStream", + sequence: false, + size: 800, + src: config.src + }, + numOfWorkers: true && config.debug ? 0 : 1, + locator: { + halfSample: false + } + }, config); + this.init(config, function () { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].once("processed", function (result) { + _this.stop(); + resultCallback.call(null, result); + }, true); + _start(); + }); + }, + ImageWrapper: __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__["a" /* default */], + ImageDebug: __WEBPACK_IMPORTED_MODULE_7__common_image_debug__["a" /* default */], + ResultCollector: __WEBPACK_IMPORTED_MODULE_8__analytics_result_collector__["a" /* default */], + CameraAccess: __WEBPACK_IMPORTED_MODULE_6__input_camera_access__["a" /* default */] +}; + +/***/ }), +/* 49 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_debug__ = __webpack_require__(9); + + +function contains(codeResult, list) { + if (list) { + return list.some(function (item) { + return Object.keys(item).every(function (key) { + return item[key] === codeResult[key]; + }); + }); + } + return false; +} + +function passesFilter(codeResult, filter) { + if (typeof filter === 'function') { + return filter(codeResult); + } + return true; +} + +/* harmony default export */ __webpack_exports__["a"] = { + create: function create(config) { + var canvas = document.createElement("canvas"), + ctx = canvas.getContext("2d"), + results = [], + capacity = config.capacity || 20, + capture = config.capture === true; + + function matchesConstraints(codeResult) { + return capacity && codeResult && !contains(codeResult, config.blacklist) && passesFilter(codeResult, config.filter); + } + + return { + addResult: function addResult(data, imageSize, codeResult) { + var result = {}; + + if (matchesConstraints(codeResult)) { + capacity--; + result.codeResult = codeResult; + if (capture) { + canvas.width = imageSize.x; + canvas.height = imageSize.y; + __WEBPACK_IMPORTED_MODULE_0__common_image_debug__["a" /* default */].drawImage(data, imageSize, ctx); + result.frame = canvas.toDataURL(); + } + results.push(result); + } + }, + getResults: function getResults() { + return results; + } + }; + } +}; + +/***/ }), +/* 50 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +var vec2 = { + clone: __webpack_require__(7), + dot: __webpack_require__(32) +}; +/** + * Creates a cluster for grouping similar orientations of datapoints + */ +/* harmony default export */ __webpack_exports__["a"] = { + create: function create(point, threshold) { + var points = [], + center = { + rad: 0, + vec: vec2.clone([0, 0]) + }, + pointMap = {}; + + function init() { + _add(point); + updateCenter(); + } + + function _add(pointToAdd) { + pointMap[pointToAdd.id] = pointToAdd; + points.push(pointToAdd); + } + + function updateCenter() { + var i, + sum = 0; + for (i = 0; i < points.length; i++) { + sum += points[i].rad; + } + center.rad = sum / points.length; + center.vec = vec2.clone([Math.cos(center.rad), Math.sin(center.rad)]); + } + + init(); + + return { + add: function add(pointToAdd) { + if (!pointMap[pointToAdd.id]) { + _add(pointToAdd); + updateCenter(); + } + }, + fits: function fits(otherPoint) { + // check cosine similarity to center-angle + var similarity = Math.abs(vec2.dot(otherPoint.point.vec, center.vec)); + if (similarity > threshold) { + return true; + } + return false; + }, + getPoints: function getPoints() { + return points; + }, + getCenter: function getCenter() { + return center; + } + }; + }, + createPoint: function createPoint(newPoint, id, property) { + return { + rad: newPoint[property], + point: newPoint, + id: id + }; + } +}; + +/***/ }), +/* 51 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony default export */ __webpack_exports__["a"] = (function () { + var events = {}; + + function getEvent(eventName) { + if (!events[eventName]) { + events[eventName] = { + subscribers: [] + }; + } + return events[eventName]; + } + + function clearEvents() { + events = {}; + } + + function publishSubscription(subscription, data) { + if (subscription.async) { + setTimeout(function () { + subscription.callback(data); + }, 4); + } else { + subscription.callback(data); + } + } + + function _subscribe(event, callback, async) { + var subscription; + + if (typeof callback === "function") { + subscription = { + callback: callback, + async: async + }; + } else { + subscription = callback; + if (!subscription.callback) { + throw "Callback was not specified on options"; + } + } + + getEvent(event).subscribers.push(subscription); + } + + return { + subscribe: function subscribe(event, callback, async) { + return _subscribe(event, callback, async); + }, + publish: function publish(eventName, data) { + var event = getEvent(eventName), + subscribers = event.subscribers; + + // Publish one-time subscriptions + subscribers.filter(function (subscriber) { + return !!subscriber.once; + }).forEach(function (subscriber) { + publishSubscription(subscriber, data); + }); + + // remove them from the subscriber + event.subscribers = subscribers.filter(function (subscriber) { + return !subscriber.once; + }); + + // publish the rest + event.subscribers.forEach(function (subscriber) { + publishSubscription(subscriber, data); + }); + }, + once: function once(event, callback, async) { + _subscribe(event, { + callback: callback, + async: async, + once: true + }); + }, + unsubscribe: function unsubscribe(eventName, callback) { + var event; + + if (eventName) { + event = getEvent(eventName); + if (event && callback) { + event.subscribers = event.subscribers.filter(function (subscriber) { + return subscriber.callback !== callback; + }); + } else { + event.subscribers = []; + } + } else { + clearEvents(); + } + } + }; +})(); + +/***/ }), +/* 52 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["b"] = enumerateDevices; +/* harmony export (immutable) */ __webpack_exports__["a"] = getUserMedia; + +function enumerateDevices() { + if (navigator.mediaDevices && typeof navigator.mediaDevices.enumerateDevices === 'function') { + return navigator.mediaDevices.enumerateDevices(); + } + return Promise.reject(new Error('enumerateDevices is not defined')); +}; + +function getUserMedia(constraints) { + if (navigator.mediaDevices && typeof navigator.mediaDevices.getUserMedia === 'function') { + return navigator.mediaDevices.getUserMedia(constraints); + } + return Promise.reject(new Error('getUserMedia is not defined')); +} + +/***/ }), +/* 53 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/** + * Construct representing a part of another {ImageWrapper}. Shares data + * between the parent and the child. + * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner) + * @param size {ImageRef} The size of the resulting image + * @param I {ImageWrapper} The {ImageWrapper} to share from + * @returns {SubImage} A shared part of the original image + */ +function SubImage(from, size, I) { + if (!I) { + I = { + data: null, + size: size + }; + } + this.data = I.data; + this.originalSize = I.size; + this.I = I; + + this.from = from; + this.size = size; +} + +/** + * Displays the {SubImage} in a given canvas + * @param canvas {Canvas} The canvas element to write to + * @param scale {Number} Scale which is applied to each pixel-value + */ +SubImage.prototype.show = function (canvas, scale) { + var ctx, frame, data, current, y, x, pixel; + + if (!scale) { + scale = 1.0; + } + ctx = canvas.getContext('2d'); + canvas.width = this.size.x; + canvas.height = this.size.y; + frame = ctx.getImageData(0, 0, canvas.width, canvas.height); + data = frame.data; + current = 0; + for (y = 0; y < this.size.y; y++) { + for (x = 0; x < this.size.x; x++) { + pixel = y * this.size.x + x; + current = this.get(x, y) * scale; + data[pixel * 4 + 0] = current; + data[pixel * 4 + 1] = current; + data[pixel * 4 + 2] = current; + data[pixel * 4 + 3] = 255; + } + } + frame.data = data; + ctx.putImageData(frame, 0, 0); +}; + +/** + * Retrieves a given pixel position from the {SubImage} + * @param x {Number} The x-position + * @param y {Number} The y-position + * @returns {Number} The grayscale value at the pixel-position + */ +SubImage.prototype.get = function (x, y) { + return this.data[(this.from.y + y) * this.originalSize.x + this.from.x + x]; +}; + +/** + * Updates the underlying data from a given {ImageWrapper} + * @param image {ImageWrapper} The updated image + */ +SubImage.prototype.updateData = function (image) { + this.originalSize = image.size; + this.data = image.data; +}; + +/** + * Updates the position of the shared area + * @param from {x,y} The new location + * @returns {SubImage} returns {this} for possible chaining + */ +SubImage.prototype.updateFrom = function (from) { + this.from = from; + return this; +}; + +/* harmony default export */ __webpack_exports__["a"] = SubImage; + +/***/ }), +/* 54 */ +/***/ (function(module, exports) { + +/* + * typedefs.js + * Normalizes browser-specific prefixes + */ + +if (typeof window !== 'undefined') { + window.requestAnimFrame = function () { + return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function ( /* function FrameRequestCallback */callback) { + window.setTimeout(callback, 1000 / 60); + }; + }(); +} +Math.imul = Math.imul || function (a, b) { + var ah = a >>> 16 & 0xffff, + al = a & 0xffff, + bh = b >>> 16 & 0xffff, + bl = b & 0xffff; + // the shift by 0 fixes the sign on the high part + // the final |0 converts the unsigned value into a signed value + return al * bl + (ah * bl + al * bh << 16 >>> 0) | 0; +}; + +if (typeof Object.assign !== 'function') { + Object.assign = function (target) { + // .length of function is 2 + 'use strict'; + + if (target === null) { + // TypeError if undefined or null + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + + if (nextSource !== null) { + // Skip over if undefined or null + for (var nextKey in nextSource) { + // Avoid bugs when hasOwnProperty is shadowed + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }; +} + +/***/ }), +/* 55 */ +/***/ (function(module, exports) { + +module.exports = { + inputStream: { + name: "Live", + type: "LiveStream", + constraints: { + width: 640, + height: 480, + // aspectRatio: 640/480, // optional + facingMode: "environment" }, + area: { + top: "0%", + right: "0%", + left: "0%", + bottom: "0%" + }, + singleChannel: false // true: only the red color-channel is read + }, + locate: true, + numOfWorkers: 0, + decoder: { + readers: ['code_128_reader', 'ean_reader', 'code_39_reader', 'code_39_vin_reader', + 'codabar_reader', 'upc_reader', 'upc_e_reader', 'i2of5_reader', '2of5_reader', 'code_93_reader'], + debug: { + drawBoundingBox: false, + showFrequency: false, + drawScanline: false, + showPattern: false + } + }, + locator: { + halfSample: true, + patchSize: "medium", // x-small, small, medium, large, x-large + debug: { + showCanvas: false, + showPatches: false, + showFoundPatches: false, + showSkeleton: false, + showLabels: false, + showPatchLabels: false, + showRemainingPatchLabels: false, + boxFromPatches: { + showTransformed: false, + showTransformedBox: false, + showBB: false + } + } + } +}; + +/***/ }), +/* 56 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +var config = void 0; + +if (true) { + config = __webpack_require__(55); +} else if (ENV.node) { + config = require('./config.node.js'); +} else { + config = require('./config.prod.js'); +} + +/* harmony default export */ __webpack_exports__["a"] = config; + +/***/ }), +/* 57 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bresenham__ = __webpack_require__(58); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_image_debug__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__ = __webpack_require__(69); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__ = __webpack_require__(31); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__ = __webpack_require__(70); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__ = __webpack_require__(68); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__ = __webpack_require__(77); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__ = __webpack_require__(74); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__ = __webpack_require__(72); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__ = __webpack_require__(73); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__ = __webpack_require__(76); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__ = __webpack_require__(75); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__reader_2of5_reader__ = __webpack_require__(67); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__reader_code_93_reader__ = __webpack_require__(71); +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; }; + + + + + + + + + + + + + + + + + +var READERS = { + code_128_reader: __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__["a" /* default */], + ean_reader: __WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__["a" /* default */], + ean_5_reader: __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__["a" /* default */], + ean_2_reader: __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__["a" /* default */], + ean_8_reader: __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__["a" /* default */], + code_39_reader: __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__["a" /* default */], + code_39_vin_reader: __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__["a" /* default */], + codabar_reader: __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__["a" /* default */], + upc_reader: __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__["a" /* default */], + upc_e_reader: __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__["a" /* default */], + i2of5_reader: __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__["a" /* default */], + '2of5_reader': __WEBPACK_IMPORTED_MODULE_13__reader_2of5_reader__["a" /* default */], + code_93_reader: __WEBPACK_IMPORTED_MODULE_14__reader_code_93_reader__["a" /* default */] +}; +/* harmony default export */ __webpack_exports__["a"] = { + create: function create(config, inputImageWrapper) { + var _canvas = { + ctx: { + frequency: null, + pattern: null, + overlay: null + }, + dom: { + frequency: null, + pattern: null, + overlay: null + } + }, + _barcodeReaders = []; + + initCanvas(); + initReaders(); + initConfig(); + + function initCanvas() { + if (true && typeof document !== 'undefined') { + var $debug = document.querySelector("#debug.detection"); + _canvas.dom.frequency = document.querySelector("canvas.frequency"); + if (!_canvas.dom.frequency) { + _canvas.dom.frequency = document.createElement("canvas"); + _canvas.dom.frequency.className = "frequency"; + if ($debug) { + $debug.appendChild(_canvas.dom.frequency); + } + } + _canvas.ctx.frequency = _canvas.dom.frequency.getContext("2d"); + + _canvas.dom.pattern = document.querySelector("canvas.patternBuffer"); + if (!_canvas.dom.pattern) { + _canvas.dom.pattern = document.createElement("canvas"); + _canvas.dom.pattern.className = "patternBuffer"; + if ($debug) { + $debug.appendChild(_canvas.dom.pattern); + } + } + _canvas.ctx.pattern = _canvas.dom.pattern.getContext("2d"); + + _canvas.dom.overlay = document.querySelector("canvas.drawingBuffer"); + if (_canvas.dom.overlay) { + _canvas.ctx.overlay = _canvas.dom.overlay.getContext("2d"); + } + } + } + + function initReaders() { + config.readers.forEach(function (readerConfig) { + var reader, + configuration = {}, + supplements = []; + + if ((typeof readerConfig === 'undefined' ? 'undefined' : _typeof(readerConfig)) === 'object') { + reader = readerConfig.format; + configuration = readerConfig.config; + } else if (typeof readerConfig === 'string') { + reader = readerConfig; + } + if (true) { + console.log("Before registering reader: ", reader); + } + if (configuration.supplements) { + supplements = configuration.supplements.map(function (supplement) { + return new READERS[supplement](); + }); + } + _barcodeReaders.push(new READERS[reader](configuration, supplements)); + }); + if (true) { + console.log("Registered Readers: " + _barcodeReaders.map(function (reader) { + return JSON.stringify({ format: reader.FORMAT, config: reader.config }); + }).join(', ')); + } + } + + function initConfig() { + if (true && typeof document !== 'undefined') { + var i, + vis = [{ + node: _canvas.dom.frequency, + prop: config.debug.showFrequency + }, { + node: _canvas.dom.pattern, + prop: config.debug.showPattern + }]; + + for (i = 0; i < vis.length; i++) { + if (vis[i].prop === true) { + vis[i].node.style.display = "block"; + } else { + vis[i].node.style.display = "none"; + } + } + } + } + + /** + * extend the line on both ends + * @param {Array} line + * @param {Number} angle + */ + function getExtendedLine(line, angle, ext) { + function extendLine(amount) { + var extension = { + y: amount * Math.sin(angle), + x: amount * Math.cos(angle) + }; + + line[0].y -= extension.y; + line[0].x -= extension.x; + line[1].y += extension.y; + line[1].x += extension.x; + } + + // check if inside image + extendLine(ext); + while (ext > 1 && (!inputImageWrapper.inImageWithBorder(line[0], 0) || !inputImageWrapper.inImageWithBorder(line[1], 0))) { + ext -= Math.ceil(ext / 2); + extendLine(-ext); + } + return line; + } + + function getLine(box) { + return [{ + x: (box[1][0] - box[0][0]) / 2 + box[0][0], + y: (box[1][1] - box[0][1]) / 2 + box[0][1] + }, { + x: (box[3][0] - box[2][0]) / 2 + box[2][0], + y: (box[3][1] - box[2][1]) / 2 + box[2][1] + }]; + } + + function tryDecode(line) { + var result = null, + i, + barcodeLine = __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].getBarcodeLine(inputImageWrapper, line[0], line[1]); + + if (true && config.debug.showFrequency) { + __WEBPACK_IMPORTED_MODULE_1__common_image_debug__["a" /* default */].drawPath(line, { x: 'x', y: 'y' }, _canvas.ctx.overlay, { color: 'red', lineWidth: 3 }); + __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].debug.printFrequency(barcodeLine.line, _canvas.dom.frequency); + } + + __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].toBinaryLine(barcodeLine); + + if (true && config.debug.showPattern) { + __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].debug.printPattern(barcodeLine.line, _canvas.dom.pattern); + } + + for (i = 0; i < _barcodeReaders.length && result === null; i++) { + result = _barcodeReaders[i].decodePattern(barcodeLine.line); + } + if (result === null) { + return null; + } + return { + codeResult: result, + barcodeLine: barcodeLine + }; + } + + /** + * This method slices the given area apart and tries to detect a barcode-pattern + * for each slice. It returns the decoded barcode, or null if nothing was found + * @param {Array} box + * @param {Array} line + * @param {Number} lineAngle + */ + function tryDecodeBruteForce(box, line, lineAngle) { + var sideLength = Math.sqrt(Math.pow(box[1][0] - box[0][0], 2) + Math.pow(box[1][1] - box[0][1], 2)), + i, + slices = 16, + result = null, + dir, + extension, + xdir = Math.sin(lineAngle), + ydir = Math.cos(lineAngle); + + for (i = 1; i < slices && result === null; i++) { + // move line perpendicular to angle + dir = sideLength / slices * i * (i % 2 === 0 ? -1 : 1); + extension = { + y: dir * xdir, + x: dir * ydir + }; + line[0].y += extension.x; + line[0].x -= extension.y; + line[1].y += extension.x; + line[1].x -= extension.y; + + result = tryDecode(line); + } + return result; + } + + function getLineLength(line) { + return Math.sqrt(Math.pow(Math.abs(line[1].y - line[0].y), 2) + Math.pow(Math.abs(line[1].x - line[0].x), 2)); + } + + /** + * With the help of the configured readers (Code128 or EAN) this function tries to detect a + * valid barcode pattern within the given area. + * @param {Object} box The area to search in + * @returns {Object} the result {codeResult, line, angle, pattern, threshold} + */ + function _decodeFromBoundingBox(box) { + var line, + lineAngle, + ctx = _canvas.ctx.overlay, + result, + lineLength; + + if (true) { + if (config.debug.drawBoundingBox && ctx) { + __WEBPACK_IMPORTED_MODULE_1__common_image_debug__["a" /* default */].drawPath(box, { x: 0, y: 1 }, ctx, { color: "blue", lineWidth: 2 }); + } + } + + line = getLine(box); + lineLength = getLineLength(line); + lineAngle = Math.atan2(line[1].y - line[0].y, line[1].x - line[0].x); + line = getExtendedLine(line, lineAngle, Math.floor(lineLength * 0.1)); + if (line === null) { + return null; + } + + result = tryDecode(line); + if (result === null) { + result = tryDecodeBruteForce(box, line, lineAngle); + } + + if (result === null) { + return null; + } + + if (true && result && config.debug.drawScanline && ctx) { + __WEBPACK_IMPORTED_MODULE_1__common_image_debug__["a" /* default */].drawPath(line, { x: 'x', y: 'y' }, ctx, { color: 'red', lineWidth: 3 }); + } + + return { + codeResult: result.codeResult, + line: line, + angle: lineAngle, + pattern: result.barcodeLine.line, + threshold: result.barcodeLine.threshold + }; + } + + return { + decodeFromBoundingBox: function decodeFromBoundingBox(box) { + return _decodeFromBoundingBox(box); + }, + decodeFromBoundingBoxes: function decodeFromBoundingBoxes(boxes) { + var i, + result, + barcodes = [], + multiple = config.multiple; + + for (i = 0; i < boxes.length; i++) { + var box = boxes[i]; + result = _decodeFromBoundingBox(box) || {}; + result.box = box; + + if (multiple) { + barcodes.push(result); + } else if (result.codeResult) { + return result; + } + } + + if (multiple) { + return { + barcodes: barcodes + }; + } + }, + setReaders: function setReaders(readers) { + config.readers = readers; + _barcodeReaders.length = 0; + initReaders(); + } + }; + } +}; + +/***/ }), +/* 58 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(20); + + +var Bresenham = {}; + +var Slope = { + DIR: { + UP: 1, + DOWN: -1 + } +}; +/** + * Scans a line of the given image from point p1 to p2 and returns a result object containing + * gray-scale values (0-255) of the underlying pixels in addition to the min + * and max values. + * @param {Object} imageWrapper + * @param {Object} p1 The start point {x,y} + * @param {Object} p2 The end point {x,y} + * @returns {line, min, max} + */ +Bresenham.getBarcodeLine = function (imageWrapper, p1, p2) { + var x0 = p1.x | 0, + y0 = p1.y | 0, + x1 = p2.x | 0, + y1 = p2.y | 0, + steep = Math.abs(y1 - y0) > Math.abs(x1 - x0), + deltax, + deltay, + error, + ystep, + y, + tmp, + x, + line = [], + imageData = imageWrapper.data, + width = imageWrapper.size.x, + sum = 0, + val, + min = 255, + max = 0; + + function read(a, b) { + val = imageData[b * width + a]; + sum += val; + min = val < min ? val : min; + max = val > max ? val : max; + line.push(val); + } + + if (steep) { + tmp = x0; + x0 = y0; + y0 = tmp; + + tmp = x1; + x1 = y1; + y1 = tmp; + } + if (x0 > x1) { + tmp = x0; + x0 = x1; + x1 = tmp; + + tmp = y0; + y0 = y1; + y1 = tmp; + } + deltax = x1 - x0; + deltay = Math.abs(y1 - y0); + error = deltax / 2 | 0; + y = y0; + ystep = y0 < y1 ? 1 : -1; + for (x = x0; x < x1; x++) { + if (steep) { + read(y, x); + } else { + read(x, y); + } + error = error - deltay; + if (error < 0) { + y = y + ystep; + error = error + deltax; + } + } + + return { + line: line, + min: min, + max: max + }; +}; + +/** + * Converts the result from getBarcodeLine into a binary representation + * also considering the frequency and slope of the signal for more robust results + * @param {Object} result {line, min, max} + */ +Bresenham.toBinaryLine = function (result) { + var min = result.min, + max = result.max, + line = result.line, + slope, + slope2, + center = min + (max - min) / 2, + extrema = [], + currentDir, + dir, + threshold = (max - min) / 12, + rThreshold = -threshold, + i, + j; + + // 1. find extrema + currentDir = line[0] > center ? Slope.DIR.UP : Slope.DIR.DOWN; + extrema.push({ + pos: 0, + val: line[0] + }); + for (i = 0; i < line.length - 2; i++) { + slope = line[i + 1] - line[i]; + slope2 = line[i + 2] - line[i + 1]; + if (slope + slope2 < rThreshold && line[i + 1] < center * 1.5) { + dir = Slope.DIR.DOWN; + } else if (slope + slope2 > threshold && line[i + 1] > center * 0.5) { + dir = Slope.DIR.UP; + } else { + dir = currentDir; + } + + if (currentDir !== dir) { + extrema.push({ + pos: i, + val: line[i] + }); + currentDir = dir; + } + } + extrema.push({ + pos: line.length, + val: line[line.length - 1] + }); + + for (j = extrema[0].pos; j < extrema[1].pos; j++) { + line[j] = line[j] > center ? 0 : 1; + } + + // iterate over extrema and convert to binary based on avg between minmax + for (i = 1; i < extrema.length - 1; i++) { + if (extrema[i + 1].val > extrema[i].val) { + threshold = extrema[i].val + (extrema[i + 1].val - extrema[i].val) / 3 * 2 | 0; + } else { + threshold = extrema[i + 1].val + (extrema[i].val - extrema[i + 1].val) / 3 | 0; + } + + for (j = extrema[i].pos; j < extrema[i + 1].pos; j++) { + line[j] = line[j] > threshold ? 0 : 1; + } + } + + return { + line: line, + threshold: threshold + }; +}; + +/** + * Used for development only + */ +Bresenham.debug = { + printFrequency: function printFrequency(line, canvas) { + var i, + ctx = canvas.getContext("2d"); + canvas.width = line.length; + canvas.height = 256; + + ctx.beginPath(); + ctx.strokeStyle = "blue"; + for (i = 0; i < line.length; i++) { + ctx.moveTo(i, 255); + ctx.lineTo(i, 255 - line[i]); + } + ctx.stroke(); + ctx.closePath(); + }, + + printPattern: function printPattern(line, canvas) { + var ctx = canvas.getContext("2d"), + i; + + canvas.width = line.length; + ctx.fillColor = "black"; + for (i = 0; i < line.length; i++) { + if (line[i] === 1) { + ctx.fillRect(i, 0, 1, 100); + } + } + } +}; + +/* harmony default export */ __webpack_exports__["a"] = Bresenham; + +/***/ }), +/* 59 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_pick__ = __webpack_require__(162); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_pick__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_mediaDevices__ = __webpack_require__(52); +/* unused harmony export pickConstraints */ + + + + +var facingMatching = { + "user": /front/i, + "environment": /back/i +}; + +var streamRef; + +function waitForVideo(video) { + return new Promise(function (resolve, reject) { + var attempts = 10; + + function checkVideo() { + if (attempts > 0) { + if (video.videoWidth > 10 && video.videoHeight > 10) { + if (true) { + console.log(video.videoWidth + "px x " + video.videoHeight + "px"); + } + resolve(); + } else { + window.setTimeout(checkVideo, 500); + } + } else { + reject('Unable to play video stream. Is webcam working?'); + } + attempts--; + } + checkVideo(); + }); +} + +/** + * Tries to attach the camera-stream to a given video-element + * and calls the callback function when the content is ready + * @param {Object} constraints + * @param {Object} video + */ +function initCamera(video, constraints) { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mediaDevices__["a" /* getUserMedia */])(constraints).then(function (stream) { + return new Promise(function (resolve) { + streamRef = stream; + video.setAttribute("autoplay", true); + video.setAttribute('muted', true); + video.setAttribute('playsinline', true); + video.srcObject = stream; + video.addEventListener('loadedmetadata', function () { + video.play(); + resolve(); + }); + }); + }).then(waitForVideo.bind(null, video)); +} + +function deprecatedConstraints(videoConstraints) { + var normalized = __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default()(videoConstraints, ["width", "height", "facingMode", "aspectRatio", "deviceId"]); + + if (typeof videoConstraints.minAspectRatio !== 'undefined' && videoConstraints.minAspectRatio > 0) { + normalized.aspectRatio = videoConstraints.minAspectRatio; + console.log("WARNING: Constraint 'minAspectRatio' is deprecated; Use 'aspectRatio' instead"); + } + if (typeof videoConstraints.facing !== 'undefined') { + normalized.facingMode = videoConstraints.facing; + console.log("WARNING: Constraint 'facing' is deprecated. Use 'facingMode' instead'"); + } + return normalized; +} + +function pickConstraints(videoConstraints) { + var normalizedConstraints = { + audio: false, + video: deprecatedConstraints(videoConstraints) + }; + + if (normalizedConstraints.video.deviceId && normalizedConstraints.video.facingMode) { + delete normalizedConstraints.video.facingMode; + } + return Promise.resolve(normalizedConstraints); +} + +function enumerateVideoDevices() { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mediaDevices__["b" /* enumerateDevices */])().then(function (devices) { + return devices.filter(function (device) { + return device.kind === 'videoinput'; + }); + }); +} + +function getActiveTrack() { + if (streamRef) { + var tracks = streamRef.getVideoTracks(); + if (tracks && tracks.length) { + return tracks[0]; + } + } +} + +/* harmony default export */ __webpack_exports__["a"] = { + request: function request(video, videoConstraints) { + return pickConstraints(videoConstraints).then(initCamera.bind(null, video)); + }, + release: function release() { + var tracks = streamRef && streamRef.getVideoTracks(); + if (tracks && tracks.length) { + tracks[0].stop(); + } + streamRef = null; + }, + enumerateVideoDevices: enumerateVideoDevices, + getActiveStreamLabel: function getActiveStreamLabel() { + var track = getActiveTrack(); + return track ? track.label : ''; + }, + getActiveTrack: getActiveTrack +}; + +/***/ }), +/* 60 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export AvailableTags */ +/* harmony export (immutable) */ __webpack_exports__["a"] = findTagsInObjectURL; +/* unused harmony export base64ToArrayBuffer */ +/* unused harmony export findTagsInBuffer */ +// Scraped from https://github.com/exif-js/exif-js + +var ExifTags = { 0x0112: "orientation" }; +var AvailableTags = Object.keys(ExifTags).map(function (key) { + return ExifTags[key]; +}); + +function findTagsInObjectURL(src) { + var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AvailableTags; + + if (/^blob\:/i.test(src)) { + return objectURLToBlob(src).then(readToBuffer).then(function (buffer) { + return findTagsInBuffer(buffer, tags); + }); + } + return Promise.resolve(null); +} + +function base64ToArrayBuffer(dataUrl) { + var base64 = dataUrl.replace(/^data\:([^\;]+)\;base64,/gmi, ''), + binary = atob(base64), + len = binary.length, + buffer = new ArrayBuffer(len), + view = new Uint8Array(buffer); + + for (var i = 0; i < len; i++) { + view[i] = binary.charCodeAt(i); + } + return buffer; +} + +function readToBuffer(blob) { + return new Promise(function (resolve) { + var fileReader = new FileReader(); + fileReader.onload = function (e) { + return resolve(e.target.result); + }; + fileReader.readAsArrayBuffer(blob); + }); +} + +function objectURLToBlob(url) { + return new Promise(function (resolve, reject) { + var http = new XMLHttpRequest(); + http.open("GET", url, true); + http.responseType = "blob"; + http.onreadystatechange = function () { + if (http.readyState === XMLHttpRequest.DONE && (http.status === 200 || http.status === 0)) { + resolve(this.response); + } + }; + http.onerror = reject; + http.send(); + }); +} + +function findTagsInBuffer(file) { + var selectedTags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AvailableTags; + + var dataView = new DataView(file), + length = file.byteLength, + exifTags = selectedTags.reduce(function (result, selectedTag) { + var exifTag = Object.keys(ExifTags).filter(function (tag) { + return ExifTags[tag] === selectedTag; + })[0]; + if (exifTag) { + result[exifTag] = selectedTag; + } + return result; + }, {}); + var offset = 2, + marker = void 0; + + if (dataView.getUint8(0) !== 0xFF || dataView.getUint8(1) !== 0xD8) { + return false; + } + + while (offset < length) { + if (dataView.getUint8(offset) !== 0xFF) { + return false; + } + + marker = dataView.getUint8(offset + 1); + if (marker === 0xE1) { + return readEXIFData(dataView, offset + 4, exifTags); + } else { + offset += 2 + dataView.getUint16(offset + 2); + } + } +} + +function readEXIFData(file, start, exifTags) { + if (getStringFromBuffer(file, start, 4) !== "Exif") { + return false; + } + + var tiffOffset = start + 6; + var bigEnd = void 0, + tags = void 0; + + if (file.getUint16(tiffOffset) === 0x4949) { + bigEnd = false; + } else if (file.getUint16(tiffOffset) === 0x4D4D) { + bigEnd = true; + } else { + return false; + } + + if (file.getUint16(tiffOffset + 2, !bigEnd) !== 0x002A) { + return false; + } + + var firstIFDOffset = file.getUint32(tiffOffset + 4, !bigEnd); + if (firstIFDOffset < 0x00000008) { + return false; + } + + tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, exifTags, bigEnd); + return tags; +} + +function readTags(file, tiffStart, dirStart, strings, bigEnd) { + var entries = file.getUint16(dirStart, !bigEnd), + tags = {}; + + for (var i = 0; i < entries; i++) { + var entryOffset = dirStart + i * 12 + 2, + tag = strings[file.getUint16(entryOffset, !bigEnd)]; + if (tag) { + tags[tag] = readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd); + } + } + return tags; +} + +function readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd) { + var type = file.getUint16(entryOffset + 2, !bigEnd), + numValues = file.getUint32(entryOffset + 4, !bigEnd); + + switch (type) { + case 3: + if (numValues === 1) { + return file.getUint16(entryOffset + 8, !bigEnd); + } + } +} + +function getStringFromBuffer(buffer, start, length) { + var outstr = ""; + for (var n = start; n < start + length; n++) { + outstr += String.fromCharCode(buffer.getUint8(n)); + } + return outstr; +} + +/***/ }), +/* 61 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_cv_utils__ = __webpack_require__(19); + + +var TO_RADIANS = Math.PI / 180; + +function adjustCanvasSize(canvas, targetSize) { + if (canvas.width !== targetSize.x) { + if (true) { + console.log("WARNING: canvas-size needs to be adjusted"); + } + canvas.width = targetSize.x; + } + if (canvas.height !== targetSize.y) { + if (true) { + console.log("WARNING: canvas-size needs to be adjusted"); + } + canvas.height = targetSize.y; + } +} + +var FrameGrabber = {}; + +FrameGrabber.create = function (inputStream, canvas) { + var _that = {}, + _streamConfig = inputStream.getConfig(), + _video_size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["b" /* imageRef */])(inputStream.getRealWidth(), inputStream.getRealHeight()), + _canvasSize = inputStream.getCanvasSize(), + _size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["b" /* imageRef */])(inputStream.getWidth(), inputStream.getHeight()), + topRight = inputStream.getTopRight(), + _sx = topRight.x, + _sy = topRight.y, + _canvas, + _ctx = null, + _data = null; + + _canvas = canvas ? canvas : document.createElement("canvas"); + _canvas.width = _canvasSize.x; + _canvas.height = _canvasSize.y; + _ctx = _canvas.getContext("2d"); + _data = new Uint8Array(_size.x * _size.y); + if (true) { + console.log("FrameGrabber", JSON.stringify({ + size: _size, + topRight: topRight, + videoSize: _video_size, + canvasSize: _canvasSize + })); + } + + /** + * Uses the given array as frame-buffer + */ + _that.attachData = function (data) { + _data = data; + }; + + /** + * Returns the used frame-buffer + */ + _that.getData = function () { + return _data; + }; + + /** + * Fetches a frame from the input-stream and puts into the frame-buffer. + * The image-data is converted to gray-scale and then half-sampled if configured. + */ + _that.grab = function () { + var doHalfSample = _streamConfig.halfSample, + frame = inputStream.getFrame(), + drawable = frame, + drawAngle = 0, + ctxData; + if (drawable) { + adjustCanvasSize(_canvas, _canvasSize); + if (_streamConfig.type === 'ImageStream') { + drawable = frame.img; + if (frame.tags && frame.tags.orientation) { + switch (frame.tags.orientation) { + case 6: + drawAngle = 90 * TO_RADIANS; + break; + case 8: + drawAngle = -90 * TO_RADIANS; + break; + } + } + } + + if (drawAngle !== 0) { + _ctx.translate(_canvasSize.x / 2, _canvasSize.y / 2); + _ctx.rotate(drawAngle); + _ctx.drawImage(drawable, -_canvasSize.y / 2, -_canvasSize.x / 2, _canvasSize.y, _canvasSize.x); + _ctx.rotate(-drawAngle); + _ctx.translate(-_canvasSize.x / 2, -_canvasSize.y / 2); + } else { + _ctx.drawImage(drawable, 0, 0, _canvasSize.x, _canvasSize.y); + } + + ctxData = _ctx.getImageData(_sx, _sy, _size.x, _size.y).data; + if (doHalfSample) { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["c" /* grayAndHalfSampleFromCanvasData */])(ctxData, _size, _data); + } else { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["d" /* computeGray */])(ctxData, _data, _streamConfig); + } + return true; + } else { + return false; + } + }; + + _that.getSize = function () { + return _size; + }; + + return _that; +}; + +/* harmony default export */ __webpack_exports__["a"] = FrameGrabber; + +/***/ }), +/* 62 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exif_helper__ = __webpack_require__(60); + + +var ImageLoader = {}; +ImageLoader.load = function (directory, callback, offset, size, sequence) { + var htmlImagesSrcArray = new Array(size), + htmlImagesArray = new Array(htmlImagesSrcArray.length), + i, + img, + num; + + if (sequence === false) { + htmlImagesSrcArray[0] = directory; + } else { + for (i = 0; i < htmlImagesSrcArray.length; i++) { + num = offset + i; + htmlImagesSrcArray[i] = directory + "image-" + ("00" + num).slice(-3) + ".jpg"; + } + } + htmlImagesArray.notLoaded = []; + htmlImagesArray.addImage = function (image) { + htmlImagesArray.notLoaded.push(image); + }; + htmlImagesArray.loaded = function (loadedImg) { + var notloadedImgs = htmlImagesArray.notLoaded; + for (var x = 0; x < notloadedImgs.length; x++) { + if (notloadedImgs[x] === loadedImg) { + notloadedImgs.splice(x, 1); + for (var y = 0; y < htmlImagesSrcArray.length; y++) { + var imgName = htmlImagesSrcArray[y].substr(htmlImagesSrcArray[y].lastIndexOf("/")); + if (loadedImg.src.lastIndexOf(imgName) !== -1) { + htmlImagesArray[y] = { img: loadedImg }; + break; + } + } + break; + } + } + if (notloadedImgs.length === 0) { + if (true) { + console.log("Images loaded"); + } + if (sequence === false) { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exif_helper__["a" /* findTagsInObjectURL */])(directory, ['orientation']).then(function (tags) { + htmlImagesArray[0].tags = tags; + callback(htmlImagesArray); + }).catch(function (e) { + console.log(e); + callback(htmlImagesArray); + }); + } else { + callback(htmlImagesArray); + } + } + }; + + for (i = 0; i < htmlImagesSrcArray.length; i++) { + img = new Image(); + htmlImagesArray.addImage(img); + addOnloadHandler(img, htmlImagesArray); + img.src = htmlImagesSrcArray[i]; + } +}; + +function addOnloadHandler(img, htmlImagesArray) { + img.onload = function () { + htmlImagesArray.loaded(this); + }; +} + +/* harmony default export */ __webpack_exports__["a"] = ImageLoader; + +/***/ }), +/* 63 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__image_loader__ = __webpack_require__(62); + + +var InputStream = {}; +InputStream.createVideoStream = function (video) { + var that = {}, + _config = null, + _eventNames = ['canrecord', 'ended'], + _eventHandlers = {}, + _calculatedWidth, + _calculatedHeight, + _topRight = { x: 0, y: 0 }, + _canvasSize = { x: 0, y: 0 }; + + function initSize() { + var width = video.videoWidth, + height = video.videoHeight; + + _calculatedWidth = _config.size ? width / height > 1 ? _config.size : Math.floor(width / height * _config.size) : width; + _calculatedHeight = _config.size ? width / height > 1 ? Math.floor(height / width * _config.size) : _config.size : height; + + _canvasSize.x = _calculatedWidth; + _canvasSize.y = _calculatedHeight; + } + + that.getRealWidth = function () { + return video.videoWidth; + }; + + that.getRealHeight = function () { + return video.videoHeight; + }; + + that.getWidth = function () { + return _calculatedWidth; + }; + + that.getHeight = function () { + return _calculatedHeight; + }; + + that.setWidth = function (width) { + _calculatedWidth = width; + }; + + that.setHeight = function (height) { + _calculatedHeight = height; + }; + + that.setInputStream = function (config) { + _config = config; + video.src = typeof config.src !== 'undefined' ? config.src : ''; + }; + + that.ended = function () { + return video.ended; + }; + + that.getConfig = function () { + return _config; + }; + + that.setAttribute = function (name, value) { + video.setAttribute(name, value); + }; + + that.pause = function () { + video.pause(); + }; + + that.play = function () { + video.play(); + }; + + that.setCurrentTime = function (time) { + if (_config.type !== "LiveStream") { + video.currentTime = time; + } + }; + + that.addEventListener = function (event, f, bool) { + if (_eventNames.indexOf(event) !== -1) { + if (!_eventHandlers[event]) { + _eventHandlers[event] = []; + } + _eventHandlers[event].push(f); + } else { + video.addEventListener(event, f, bool); + } + }; + + that.clearEventHandlers = function () { + _eventNames.forEach(function (eventName) { + var handlers = _eventHandlers[eventName]; + if (handlers && handlers.length > 0) { + handlers.forEach(function (handler) { + video.removeEventListener(eventName, handler); + }); + } + }); + }; + + that.trigger = function (eventName, args) { + var j, + handlers = _eventHandlers[eventName]; + + if (eventName === 'canrecord') { + initSize(); + } + if (handlers && handlers.length > 0) { + for (j = 0; j < handlers.length; j++) { + handlers[j].apply(that, args); + } + } + }; + + that.setTopRight = function (topRight) { + _topRight.x = topRight.x; + _topRight.y = topRight.y; + }; + + that.getTopRight = function () { + return _topRight; + }; + + that.setCanvasSize = function (size) { + _canvasSize.x = size.x; + _canvasSize.y = size.y; + }; + + that.getCanvasSize = function () { + return _canvasSize; + }; + + that.getFrame = function () { + return video; + }; + + return that; +}; + +InputStream.createLiveStream = function (video) { + video.setAttribute("autoplay", true); + var that = InputStream.createVideoStream(video); + + that.ended = function () { + return false; + }; + + return that; +}; + +InputStream.createImageStream = function () { + var that = {}; + var _config = null; + + var width = 0, + height = 0, + frameIdx = 0, + paused = true, + loaded = false, + imgArray = null, + size = 0, + offset = 1, + baseUrl = null, + ended = false, + calculatedWidth, + calculatedHeight, + _eventNames = ['canrecord', 'ended'], + _eventHandlers = {}, + _topRight = { x: 0, y: 0 }, + _canvasSize = { x: 0, y: 0 }; + + function loadImages() { + loaded = false; + __WEBPACK_IMPORTED_MODULE_0__image_loader__["a" /* default */].load(baseUrl, function (imgs) { + imgArray = imgs; + if (imgs[0].tags && imgs[0].tags.orientation) { + switch (imgs[0].tags.orientation) { + case 6: + case 8: + width = imgs[0].img.height; + height = imgs[0].img.width; + break; + default: + width = imgs[0].img.width; + height = imgs[0].img.height; + } + } else { + width = imgs[0].img.width; + height = imgs[0].img.height; + } + calculatedWidth = _config.size ? width / height > 1 ? _config.size : Math.floor(width / height * _config.size) : width; + calculatedHeight = _config.size ? width / height > 1 ? Math.floor(height / width * _config.size) : _config.size : height; + _canvasSize.x = calculatedWidth; + _canvasSize.y = calculatedHeight; + loaded = true; + frameIdx = 0; + setTimeout(function () { + publishEvent("canrecord", []); + }, 0); + }, offset, size, _config.sequence); + } + + function publishEvent(eventName, args) { + var j, + handlers = _eventHandlers[eventName]; + + if (handlers && handlers.length > 0) { + for (j = 0; j < handlers.length; j++) { + handlers[j].apply(that, args); + } + } + } + + that.trigger = publishEvent; + + that.getWidth = function () { + return calculatedWidth; + }; + + that.getHeight = function () { + return calculatedHeight; + }; + + that.setWidth = function (newWidth) { + calculatedWidth = newWidth; + }; + + that.setHeight = function (newHeight) { + calculatedHeight = newHeight; + }; + + that.getRealWidth = function () { + return width; + }; + + that.getRealHeight = function () { + return height; + }; + + that.setInputStream = function (stream) { + _config = stream; + if (stream.sequence === false) { + baseUrl = stream.src; + size = 1; + } else { + baseUrl = stream.src; + size = stream.length; + } + loadImages(); + }; + + that.ended = function () { + return ended; + }; + + that.setAttribute = function () {}; + + that.getConfig = function () { + return _config; + }; + + that.pause = function () { + paused = true; + }; + + that.play = function () { + paused = false; + }; + + that.setCurrentTime = function (time) { + frameIdx = time; + }; + + that.addEventListener = function (event, f) { + if (_eventNames.indexOf(event) !== -1) { + if (!_eventHandlers[event]) { + _eventHandlers[event] = []; + } + _eventHandlers[event].push(f); + } + }; + + that.setTopRight = function (topRight) { + _topRight.x = topRight.x; + _topRight.y = topRight.y; + }; + + that.getTopRight = function () { + return _topRight; + }; + + that.setCanvasSize = function (canvasSize) { + _canvasSize.x = canvasSize.x; + _canvasSize.y = canvasSize.y; + }; + + that.getCanvasSize = function () { + return _canvasSize; + }; + + that.getFrame = function () { + var frame; + + if (!loaded) { + return null; + } + if (!paused) { + frame = imgArray[frameIdx]; + if (frameIdx < size - 1) { + frameIdx++; + } else { + setTimeout(function () { + ended = true; + publishEvent("ended", []); + }, 0); + } + } + return frame; + }; + + return that; +}; + +/* harmony default export */ __webpack_exports__["a"] = InputStream; + +/***/ }), +/* 64 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(20); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_image_debug__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rasterizer__ = __webpack_require__(65); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__tracer__ = __webpack_require__(30); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__skeletonizer__ = __webpack_require__(66); + + + + + + + +var vec2 = { + clone: __webpack_require__(7), + dot: __webpack_require__(32), + scale: __webpack_require__(81), + transformMat2: __webpack_require__(82) +}; +var mat2 = { + copy: __webpack_require__(78), + create: __webpack_require__(79), + invert: __webpack_require__(80) +}; + +var _config, + _currentImageWrapper, + _skelImageWrapper, + _subImageWrapper, + _labelImageWrapper, + _patchGrid, + _patchLabelGrid, + _imageToPatchGrid, + _binaryImageWrapper, + _patchSize, + _canvasContainer = { + ctx: { + binary: null + }, + dom: { + binary: null + } +}, + _numPatches = { x: 0, y: 0 }, + _inputImageWrapper, + _skeletonizer; + +function initBuffers() { + var skeletonImageData; + + if (_config.halfSample) { + _currentImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */]({ + x: _inputImageWrapper.size.x / 2 | 0, + y: _inputImageWrapper.size.y / 2 | 0 + }); + } else { + _currentImageWrapper = _inputImageWrapper; + } + + _patchSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["e" /* calculatePatchSize */])(_config.patchSize, _currentImageWrapper.size); + + _numPatches.x = _currentImageWrapper.size.x / _patchSize.x | 0; + _numPatches.y = _currentImageWrapper.size.y / _patchSize.y | 0; + + _binaryImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_currentImageWrapper.size, undefined, Uint8Array, false); + + _labelImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_patchSize, undefined, Array, true); + + skeletonImageData = new ArrayBuffer(64 * 1024); + _subImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_patchSize, new Uint8Array(skeletonImageData, 0, _patchSize.x * _patchSize.y)); + _skelImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_patchSize, new Uint8Array(skeletonImageData, _patchSize.x * _patchSize.y * 3, _patchSize.x * _patchSize.y), undefined, true); + _skeletonizer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__skeletonizer__["a" /* default */])(typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : global, { + size: _patchSize.x + }, skeletonImageData); + + _imageToPatchGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */]({ + x: _currentImageWrapper.size.x / _subImageWrapper.size.x | 0, + y: _currentImageWrapper.size.y / _subImageWrapper.size.y | 0 + }, undefined, Array, true); + _patchGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_imageToPatchGrid.size, undefined, undefined, true); + _patchLabelGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_imageToPatchGrid.size, undefined, Int32Array, true); +} + +function initCanvas() { + if (_config.useWorker || typeof document === 'undefined') { + return; + } + _canvasContainer.dom.binary = document.createElement("canvas"); + _canvasContainer.dom.binary.className = "binaryBuffer"; + if (true && _config.debug.showCanvas === true) { + document.querySelector("#debug").appendChild(_canvasContainer.dom.binary); + } + _canvasContainer.ctx.binary = _canvasContainer.dom.binary.getContext("2d"); + _canvasContainer.dom.binary.width = _binaryImageWrapper.size.x; + _canvasContainer.dom.binary.height = _binaryImageWrapper.size.y; +} + +/** + * Creates a bounding box which encloses all the given patches + * @returns {Array} The minimal bounding box + */ +function boxFromPatches(patches) { + var overAvg, + i, + j, + patch, + transMat, + minx = _binaryImageWrapper.size.x, + miny = _binaryImageWrapper.size.y, + maxx = -_binaryImageWrapper.size.x, + maxy = -_binaryImageWrapper.size.y, + box, + scale; + + // draw all patches which are to be taken into consideration + overAvg = 0; + for (i = 0; i < patches.length; i++) { + patch = patches[i]; + overAvg += patch.rad; + if (true && _config.debug.showPatches) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "red" }); + } + } + + overAvg /= patches.length; + overAvg = (overAvg * 180 / Math.PI + 90) % 180 - 90; + if (overAvg < 0) { + overAvg += 180; + } + + overAvg = (180 - overAvg) * Math.PI / 180; + transMat = mat2.copy(mat2.create(), [Math.cos(overAvg), Math.sin(overAvg), -Math.sin(overAvg), Math.cos(overAvg)]); + + // iterate over patches and rotate by angle + for (i = 0; i < patches.length; i++) { + patch = patches[i]; + for (j = 0; j < 4; j++) { + vec2.transformMat2(patch.box[j], patch.box[j], transMat); + } + + if (true && _config.debug.boxFromPatches.showTransformed) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawPath(patch.box, { x: 0, y: 1 }, _canvasContainer.ctx.binary, { color: '#99ff00', lineWidth: 2 }); + } + } + + // find bounding box + for (i = 0; i < patches.length; i++) { + patch = patches[i]; + for (j = 0; j < 4; j++) { + if (patch.box[j][0] < minx) { + minx = patch.box[j][0]; + } + if (patch.box[j][0] > maxx) { + maxx = patch.box[j][0]; + } + if (patch.box[j][1] < miny) { + miny = patch.box[j][1]; + } + if (patch.box[j][1] > maxy) { + maxy = patch.box[j][1]; + } + } + } + + box = [[minx, miny], [maxx, miny], [maxx, maxy], [minx, maxy]]; + + if (true && _config.debug.boxFromPatches.showTransformedBox) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawPath(box, { x: 0, y: 1 }, _canvasContainer.ctx.binary, { color: '#ff0000', lineWidth: 2 }); + } + + scale = _config.halfSample ? 2 : 1; + // reverse rotation; + transMat = mat2.invert(transMat, transMat); + for (j = 0; j < 4; j++) { + vec2.transformMat2(box[j], box[j], transMat); + } + + if (true && _config.debug.boxFromPatches.showBB) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawPath(box, { x: 0, y: 1 }, _canvasContainer.ctx.binary, { color: '#ff0000', lineWidth: 2 }); + } + + for (j = 0; j < 4; j++) { + vec2.scale(box[j], box[j], scale); + } + + return box; +} + +/** + * Creates a binary image of the current image + */ +function binarizeImage() { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["f" /* otsuThreshold */])(_currentImageWrapper, _binaryImageWrapper); + _binaryImageWrapper.zeroBorder(); + if (true && _config.debug.showCanvas) { + _binaryImageWrapper.show(_canvasContainer.dom.binary, 255); + } +} + +/** + * Iterate over the entire image + * extract patches + */ +function findPatches() { + var i, + j, + x, + y, + moments, + patchesFound = [], + rasterizer, + rasterResult, + patch; + for (i = 0; i < _numPatches.x; i++) { + for (j = 0; j < _numPatches.y; j++) { + x = _subImageWrapper.size.x * i; + y = _subImageWrapper.size.y * j; + + // seperate parts + skeletonize(x, y); + + // Rasterize, find individual bars + _skelImageWrapper.zeroBorder(); + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_labelImageWrapper.data, 0); + rasterizer = __WEBPACK_IMPORTED_MODULE_4__rasterizer__["a" /* default */].create(_skelImageWrapper, _labelImageWrapper); + rasterResult = rasterizer.rasterize(0); + + if (true && _config.debug.showLabels) { + _labelImageWrapper.overlay(_canvasContainer.dom.binary, Math.floor(360 / rasterResult.count), { x: x, y: y }); + } + + // calculate moments from the skeletonized patch + moments = _labelImageWrapper.moments(rasterResult.count); + + // extract eligible patches + patchesFound = patchesFound.concat(describePatch(moments, [i, j], x, y)); + } + } + + if (true && _config.debug.showFoundPatches) { + for (i = 0; i < patchesFound.length; i++) { + patch = patchesFound[i]; + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "#99ff00", lineWidth: 2 }); + } + } + + return patchesFound; +} + +/** + * Finds those connected areas which contain at least 6 patches + * and returns them ordered DESC by the number of contained patches + * @param {Number} maxLabel + */ +function findBiggestConnectedAreas(maxLabel) { + var i, + sum, + labelHist = [], + topLabels = []; + + for (i = 0; i < maxLabel; i++) { + labelHist.push(0); + } + sum = _patchLabelGrid.data.length; + while (sum--) { + if (_patchLabelGrid.data[sum] > 0) { + labelHist[_patchLabelGrid.data[sum] - 1]++; + } + } + + labelHist = labelHist.map(function (val, idx) { + return { + val: val, + label: idx + 1 + }; + }); + + labelHist.sort(function (a, b) { + return b.val - a.val; + }); + + // extract top areas with at least 6 patches present + topLabels = labelHist.filter(function (el) { + return el.val >= 5; + }); + + return topLabels; +} + +/** + * + */ +function findBoxes(topLabels, maxLabel) { + var i, + j, + sum, + patches = [], + patch, + box, + boxes = [], + hsv = [0, 1, 1], + rgb = [0, 0, 0]; + + for (i = 0; i < topLabels.length; i++) { + sum = _patchLabelGrid.data.length; + patches.length = 0; + while (sum--) { + if (_patchLabelGrid.data[sum] === topLabels[i].label) { + patch = _imageToPatchGrid.data[sum]; + patches.push(patch); + } + } + box = boxFromPatches(patches); + if (box) { + boxes.push(box); + + // draw patch-labels if requested + if (true && _config.debug.showRemainingPatchLabels) { + for (j = 0; j < patches.length; j++) { + patch = patches[j]; + hsv[0] = topLabels[i].label / (maxLabel + 1) * 360; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["a" /* hsv2rgb */])(hsv, rgb); + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "rgb(" + rgb.join(",") + ")", lineWidth: 2 }); + } + } + } + } + return boxes; +} + +/** + * Find similar moments (via cluster) + * @param {Object} moments + */ +function similarMoments(moments) { + var clusters = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["g" /* cluster */])(moments, 0.90); + var topCluster = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["h" /* topGeneric */])(clusters, 1, function (e) { + return e.getPoints().length; + }); + var points = [], + result = []; + if (topCluster.length === 1) { + points = topCluster[0].item.getPoints(); + for (var i = 0; i < points.length; i++) { + result.push(points[i].point); + } + } + return result; +} + +function skeletonize(x, y) { + _binaryImageWrapper.subImageAsCopy(_subImageWrapper, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["b" /* imageRef */])(x, y)); + _skeletonizer.skeletonize(); + + // Show skeleton if requested + if (true && _config.debug.showSkeleton) { + _skelImageWrapper.overlay(_canvasContainer.dom.binary, 360, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["b" /* imageRef */])(x, y)); + } +} + +/** + * Extracts and describes those patches which seem to contain a barcode pattern + * @param {Array} moments + * @param {Object} patchPos, + * @param {Number} x + * @param {Number} y + * @returns {Array} list of patches + */ +function describePatch(moments, patchPos, x, y) { + var k, + avg, + eligibleMoments = [], + matchingMoments, + patch, + patchesFound = [], + minComponentWeight = Math.ceil(_patchSize.x / 3); + + if (moments.length >= 2) { + // only collect moments which's area covers at least minComponentWeight pixels. + for (k = 0; k < moments.length; k++) { + if (moments[k].m00 > minComponentWeight) { + eligibleMoments.push(moments[k]); + } + } + + // if at least 2 moments are found which have at least minComponentWeights covered + if (eligibleMoments.length >= 2) { + matchingMoments = similarMoments(eligibleMoments); + avg = 0; + // determine the similarity of the moments + for (k = 0; k < matchingMoments.length; k++) { + avg += matchingMoments[k].rad; + } + + // Only two of the moments are allowed not to fit into the equation + // add the patch to the set + if (matchingMoments.length > 1 && matchingMoments.length >= eligibleMoments.length / 4 * 3 && matchingMoments.length > moments.length / 4) { + avg /= matchingMoments.length; + patch = { + index: patchPos[1] * _numPatches.x + patchPos[0], + pos: { + x: x, + y: y + }, + box: [vec2.clone([x, y]), vec2.clone([x + _subImageWrapper.size.x, y]), vec2.clone([x + _subImageWrapper.size.x, y + _subImageWrapper.size.y]), vec2.clone([x, y + _subImageWrapper.size.y])], + moments: matchingMoments, + rad: avg, + vec: vec2.clone([Math.cos(avg), Math.sin(avg)]) + }; + patchesFound.push(patch); + } + } + } + return patchesFound; +} + +/** + * finds patches which are connected and share the same orientation + * @param {Object} patchesFound + */ +function rasterizeAngularSimilarity(patchesFound) { + var label = 0, + threshold = 0.95, + currIdx = 0, + j, + patch, + hsv = [0, 1, 1], + rgb = [0, 0, 0]; + + function notYetProcessed() { + var i; + for (i = 0; i < _patchLabelGrid.data.length; i++) { + if (_patchLabelGrid.data[i] === 0 && _patchGrid.data[i] === 1) { + return i; + } + } + return _patchLabelGrid.length; + } + + function trace(currentIdx) { + var x, + y, + currentPatch, + idx, + dir, + current = { + x: currentIdx % _patchLabelGrid.size.x, + y: currentIdx / _patchLabelGrid.size.x | 0 + }, + similarity; + + if (currentIdx < _patchLabelGrid.data.length) { + currentPatch = _imageToPatchGrid.data[currentIdx]; + // assign label + _patchLabelGrid.data[currentIdx] = label; + for (dir = 0; dir < __WEBPACK_IMPORTED_MODULE_5__tracer__["a" /* default */].searchDirections.length; dir++) { + y = current.y + __WEBPACK_IMPORTED_MODULE_5__tracer__["a" /* default */].searchDirections[dir][0]; + x = current.x + __WEBPACK_IMPORTED_MODULE_5__tracer__["a" /* default */].searchDirections[dir][1]; + idx = y * _patchLabelGrid.size.x + x; + + // continue if patch empty + if (_patchGrid.data[idx] === 0) { + _patchLabelGrid.data[idx] = Number.MAX_VALUE; + continue; + } + + if (_patchLabelGrid.data[idx] === 0) { + similarity = Math.abs(vec2.dot(_imageToPatchGrid.data[idx].vec, currentPatch.vec)); + if (similarity > threshold) { + trace(idx); + } + } + } + } + } + + // prepare for finding the right patches + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_patchGrid.data, 0); + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_patchLabelGrid.data, 0); + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_imageToPatchGrid.data, null); + + for (j = 0; j < patchesFound.length; j++) { + patch = patchesFound[j]; + _imageToPatchGrid.data[patch.index] = patch; + _patchGrid.data[patch.index] = 1; + } + + // rasterize the patches found to determine area + _patchGrid.zeroBorder(); + + while ((currIdx = notYetProcessed()) < _patchLabelGrid.data.length) { + label++; + trace(currIdx); + } + + // draw patch-labels if requested + if (true && _config.debug.showPatchLabels) { + for (j = 0; j < _patchLabelGrid.data.length; j++) { + if (_patchLabelGrid.data[j] > 0 && _patchLabelGrid.data[j] <= label) { + patch = _imageToPatchGrid.data[j]; + hsv[0] = _patchLabelGrid.data[j] / (label + 1) * 360; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["a" /* hsv2rgb */])(hsv, rgb); + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "rgb(" + rgb.join(",") + ")", lineWidth: 2 }); + } + } + } + + return label; +} + +/* harmony default export */ __webpack_exports__["a"] = { + init: function init(inputImageWrapper, config) { + _config = config; + _inputImageWrapper = inputImageWrapper; + + initBuffers(); + initCanvas(); + }, + + locate: function locate() { + var patchesFound, topLabels, boxes; + + if (_config.halfSample) { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["i" /* halfSample */])(_inputImageWrapper, _currentImageWrapper); + } + + binarizeImage(); + patchesFound = findPatches(); + // return unless 5% or more patches are found + if (patchesFound.length < _numPatches.x * _numPatches.y * 0.05) { + return null; + } + + // rasterrize area by comparing angular similarity; + var maxLabel = rasterizeAngularSimilarity(patchesFound); + if (maxLabel < 1) { + return null; + } + + // search for area with the most patches (biggest connected area) + topLabels = findBiggestConnectedAreas(maxLabel); + if (topLabels.length === 0) { + return null; + } + + boxes = findBoxes(topLabels, maxLabel); + return boxes; + }, + + checkImageConstraints: function checkImageConstraints(inputStream, config) { + var patchSize, + width = inputStream.getWidth(), + height = inputStream.getHeight(), + halfSample = config.halfSample ? 0.5 : 1, + size, + area; + + // calculate width and height based on area + if (inputStream.getConfig().area) { + area = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["j" /* computeImageArea */])(width, height, inputStream.getConfig().area); + inputStream.setTopRight({ x: area.sx, y: area.sy }); + inputStream.setCanvasSize({ x: width, y: height }); + width = area.sw; + height = area.sh; + } + + size = { + x: Math.floor(width * halfSample), + y: Math.floor(height * halfSample) + }; + + patchSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["e" /* calculatePatchSize */])(config.patchSize, size); + if (true) { + console.log("Patch-Size: " + JSON.stringify(patchSize)); + } + + inputStream.setWidth(Math.floor(Math.floor(size.x / patchSize.x) * (1 / halfSample) * patchSize.x)); + inputStream.setHeight(Math.floor(Math.floor(size.y / patchSize.y) * (1 / halfSample) * patchSize.y)); + + if (inputStream.getWidth() % patchSize.x === 0 && inputStream.getHeight() % patchSize.y === 0) { + return true; + } + + throw new Error("Image dimensions do not comply with the current settings: Width (" + width + " )and height (" + height + ") must a multiple of " + patchSize.x); + } +}; +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(47))) + +/***/ }), +/* 65 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tracer__ = __webpack_require__(30); + + +/** + * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization + */ +var Rasterizer = { + createContour2D: function createContour2D() { + return { + dir: null, + index: null, + firstVertex: null, + insideContours: null, + nextpeer: null, + prevpeer: null + }; + }, + CONTOUR_DIR: { + CW_DIR: 0, + CCW_DIR: 1, + UNKNOWN_DIR: 2 + }, + DIR: { + OUTSIDE_EDGE: -32767, + INSIDE_EDGE: -32766 + }, + create: function create(imageWrapper, labelWrapper) { + var imageData = imageWrapper.data, + labelData = labelWrapper.data, + width = imageWrapper.size.x, + height = imageWrapper.size.y, + tracer = __WEBPACK_IMPORTED_MODULE_0__tracer__["a" /* default */].create(imageWrapper, labelWrapper); + + return { + rasterize: function rasterize(depthlabel) { + var color, + bc, + lc, + labelindex, + cx, + cy, + colorMap = [], + vertex, + p, + cc, + sc, + pos, + connectedCount = 0, + i; + + for (i = 0; i < 400; i++) { + colorMap[i] = 0; + } + + colorMap[0] = imageData[0]; + cc = null; + for (cy = 1; cy < height - 1; cy++) { + labelindex = 0; + bc = colorMap[0]; + for (cx = 1; cx < width - 1; cx++) { + pos = cy * width + cx; + if (labelData[pos] === 0) { + color = imageData[pos]; + if (color !== bc) { + if (labelindex === 0) { + lc = connectedCount + 1; + colorMap[lc] = color; + bc = color; + vertex = tracer.contourTracing(cy, cx, lc, color, Rasterizer.DIR.OUTSIDE_EDGE); + if (vertex !== null) { + connectedCount++; + labelindex = lc; + p = Rasterizer.createContour2D(); + p.dir = Rasterizer.CONTOUR_DIR.CW_DIR; + p.index = labelindex; + p.firstVertex = vertex; + p.nextpeer = cc; + p.insideContours = null; + if (cc !== null) { + cc.prevpeer = p; + } + cc = p; + } + } else { + vertex = tracer.contourTracing(cy, cx, Rasterizer.DIR.INSIDE_EDGE, color, labelindex); + if (vertex !== null) { + p = Rasterizer.createContour2D(); + p.firstVertex = vertex; + p.insideContours = null; + if (depthlabel === 0) { + p.dir = Rasterizer.CONTOUR_DIR.CCW_DIR; + } else { + p.dir = Rasterizer.CONTOUR_DIR.CW_DIR; + } + p.index = depthlabel; + sc = cc; + while (sc !== null && sc.index !== labelindex) { + sc = sc.nextpeer; + } + if (sc !== null) { + p.nextpeer = sc.insideContours; + if (sc.insideContours !== null) { + sc.insideContours.prevpeer = p; + } + sc.insideContours = p; + } + } + } + } else { + labelData[pos] = labelindex; + } + } else if (labelData[pos] === Rasterizer.DIR.OUTSIDE_EDGE || labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) { + labelindex = 0; + if (labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) { + bc = imageData[pos]; + } else { + bc = colorMap[0]; + } + } else { + labelindex = labelData[pos]; + bc = colorMap[labelindex]; + } + } + } + sc = cc; + while (sc !== null) { + sc.index = depthlabel; + sc = sc.nextpeer; + } + return { + cc: cc, + count: connectedCount + }; + }, + debug: { + drawContour: function drawContour(canvas, firstContour) { + var ctx = canvas.getContext("2d"), + pq = firstContour, + iq, + q, + p; + + ctx.strokeStyle = "red"; + ctx.fillStyle = "red"; + ctx.lineWidth = 1; + + if (pq !== null) { + iq = pq.insideContours; + } else { + iq = null; + } + + while (pq !== null) { + if (iq !== null) { + q = iq; + iq = iq.nextpeer; + } else { + q = pq; + pq = pq.nextpeer; + if (pq !== null) { + iq = pq.insideContours; + } else { + iq = null; + } + } + + switch (q.dir) { + case Rasterizer.CONTOUR_DIR.CW_DIR: + ctx.strokeStyle = "red"; + break; + case Rasterizer.CONTOUR_DIR.CCW_DIR: + ctx.strokeStyle = "blue"; + break; + case Rasterizer.CONTOUR_DIR.UNKNOWN_DIR: + ctx.strokeStyle = "green"; + break; + } + + p = q.firstVertex; + ctx.beginPath(); + ctx.moveTo(p.x, p.y); + do { + p = p.next; + ctx.lineTo(p.x, p.y); + } while (p !== q.firstVertex); + ctx.stroke(); + } + } + } + }; + } +}; + +/* harmony default export */ __webpack_exports__["a"] = Rasterizer; + +/***/ }), +/* 66 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* @preserve ASM BEGIN */ +/* eslint-disable eqeqeq*/ +function Skeletonizer(stdlib, foreign, buffer) { + "use asm"; + + var images = new stdlib.Uint8Array(buffer), + size = foreign.size | 0, + imul = stdlib.Math.imul; + + function erode(inImagePtr, outImagePtr) { + inImagePtr = inImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var v = 0, + u = 0, + sum = 0, + yStart1 = 0, + yStart2 = 0, + xStart1 = 0, + xStart2 = 0, + offset = 0; + + for (v = 1; (v | 0) < (size - 1 | 0); v = v + 1 | 0) { + offset = offset + size | 0; + for (u = 1; (u | 0) < (size - 1 | 0); u = u + 1 | 0) { + yStart1 = offset - size | 0; + yStart2 = offset + size | 0; + xStart1 = u - 1 | 0; + xStart2 = u + 1 | 0; + sum = (images[inImagePtr + yStart1 + xStart1 | 0] | 0) + (images[inImagePtr + yStart1 + xStart2 | 0] | 0) + (images[inImagePtr + offset + u | 0] | 0) + (images[inImagePtr + yStart2 + xStart1 | 0] | 0) + (images[inImagePtr + yStart2 + xStart2 | 0] | 0) | 0; + if ((sum | 0) == (5 | 0)) { + images[outImagePtr + offset + u | 0] = 1; + } else { + images[outImagePtr + offset + u | 0] = 0; + } + } + } + return; + } + + function subtract(aImagePtr, bImagePtr, outImagePtr) { + aImagePtr = aImagePtr | 0; + bImagePtr = bImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[outImagePtr + length | 0] = (images[aImagePtr + length | 0] | 0) - (images[bImagePtr + length | 0] | 0) | 0; + } + } + + function bitwiseOr(aImagePtr, bImagePtr, outImagePtr) { + aImagePtr = aImagePtr | 0; + bImagePtr = bImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[outImagePtr + length | 0] = images[aImagePtr + length | 0] | 0 | (images[bImagePtr + length | 0] | 0) | 0; + } + } + + function countNonZero(imagePtr) { + imagePtr = imagePtr | 0; + + var sum = 0, + length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + sum = (sum | 0) + (images[imagePtr + length | 0] | 0) | 0; + } + + return sum | 0; + } + + function init(imagePtr, value) { + imagePtr = imagePtr | 0; + value = value | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[imagePtr + length | 0] = value; + } + } + + function dilate(inImagePtr, outImagePtr) { + inImagePtr = inImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var v = 0, + u = 0, + sum = 0, + yStart1 = 0, + yStart2 = 0, + xStart1 = 0, + xStart2 = 0, + offset = 0; + + for (v = 1; (v | 0) < (size - 1 | 0); v = v + 1 | 0) { + offset = offset + size | 0; + for (u = 1; (u | 0) < (size - 1 | 0); u = u + 1 | 0) { + yStart1 = offset - size | 0; + yStart2 = offset + size | 0; + xStart1 = u - 1 | 0; + xStart2 = u + 1 | 0; + sum = (images[inImagePtr + yStart1 + xStart1 | 0] | 0) + (images[inImagePtr + yStart1 + xStart2 | 0] | 0) + (images[inImagePtr + offset + u | 0] | 0) + (images[inImagePtr + yStart2 + xStart1 | 0] | 0) + (images[inImagePtr + yStart2 + xStart2 | 0] | 0) | 0; + if ((sum | 0) > (0 | 0)) { + images[outImagePtr + offset + u | 0] = 1; + } else { + images[outImagePtr + offset + u | 0] = 0; + } + } + } + return; + } + + function memcpy(srcImagePtr, dstImagePtr) { + srcImagePtr = srcImagePtr | 0; + dstImagePtr = dstImagePtr | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[dstImagePtr + length | 0] = images[srcImagePtr + length | 0] | 0; + } + } + + function zeroBorder(imagePtr) { + imagePtr = imagePtr | 0; + + var x = 0, + y = 0; + + for (x = 0; (x | 0) < (size - 1 | 0); x = x + 1 | 0) { + images[imagePtr + x | 0] = 0; + images[imagePtr + y | 0] = 0; + y = y + size - 1 | 0; + images[imagePtr + y | 0] = 0; + y = y + 1 | 0; + } + for (x = 0; (x | 0) < (size | 0); x = x + 1 | 0) { + images[imagePtr + y | 0] = 0; + y = y + 1 | 0; + } + } + + function skeletonize() { + var subImagePtr = 0, + erodedImagePtr = 0, + tempImagePtr = 0, + skelImagePtr = 0, + sum = 0, + done = 0; + + erodedImagePtr = imul(size, size) | 0; + tempImagePtr = erodedImagePtr + erodedImagePtr | 0; + skelImagePtr = tempImagePtr + erodedImagePtr | 0; + + // init skel-image + init(skelImagePtr, 0); + zeroBorder(subImagePtr); + + do { + erode(subImagePtr, erodedImagePtr); + dilate(erodedImagePtr, tempImagePtr); + subtract(subImagePtr, tempImagePtr, tempImagePtr); + bitwiseOr(skelImagePtr, tempImagePtr, skelImagePtr); + memcpy(erodedImagePtr, subImagePtr); + sum = countNonZero(subImagePtr) | 0; + done = (sum | 0) == 0 | 0; + } while (!done); + } + return { + skeletonize: skeletonize + }; +} +/* @preserve ASM END */ +/* harmony default export */ __webpack_exports__["a"] = Skeletonizer; +/* eslint-enable eqeqeq*/ + +/***/ }), +/* 67 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); + + +function TwoOfFiveReader(opts) { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this, opts); + this.barSpaceRatio = [1, 1]; +} + +var N = 1, + W = 3, + properties = { + START_PATTERN: { value: [W, N, W, N, N, N] }, + STOP_PATTERN: { value: [W, N, N, N, W] }, + CODE_PATTERN: { value: [[N, N, W, W, N], [W, N, N, N, W], [N, W, N, N, W], [W, W, N, N, N], [N, N, W, N, W], [W, N, W, N, N], [N, W, W, N, N], [N, N, N, W, W], [W, N, N, W, N], [N, W, N, W, N]] }, + SINGLE_CODE_ERROR: { value: 0.78, writable: true }, + AVG_CODE_ERROR: { value: 0.30, writable: true }, + FORMAT: { value: "2of5" } +}; + +var startPatternLength = properties.START_PATTERN.value.reduce(function (sum, val) { + return sum + val; +}, 0); + +TwoOfFiveReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +TwoOfFiveReader.prototype.constructor = TwoOfFiveReader; + +TwoOfFiveReader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder) { + var counter = [], + self = this, + i, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }, + error, + j, + sum, + epsilon = self.AVG_CODE_ERROR; + + isWhite = isWhite || false; + tryHarder = tryHarder || false; + + if (!offset) { + offset = self._nextSet(self._row); + } + + for (i = 0; i < pattern.length; i++) { + counter[i] = 0; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + error = self._matchPattern(counter, pattern); + if (error < epsilon) { + bestMatch.error = error; + bestMatch.start = i - sum; + bestMatch.end = i; + return bestMatch; + } + if (tryHarder) { + for (j = 0; j < counter.length - 2; j++) { + counter[j] = counter[j + 2]; + } + counter[counter.length - 2] = 0; + counter[counter.length - 1] = 0; + counterPos--; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +TwoOfFiveReader.prototype._findStart = function () { + var self = this, + leadingWhitespaceStart, + offset = self._nextSet(self._row), + startInfo, + narrowBarWidth = 1; + + while (!startInfo) { + startInfo = self._findPattern(self.START_PATTERN, offset, false, true); + if (!startInfo) { + return null; + } + narrowBarWidth = Math.floor((startInfo.end - startInfo.start) / startPatternLength); + leadingWhitespaceStart = startInfo.start - narrowBarWidth * 5; + if (leadingWhitespaceStart >= 0) { + if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) { + return startInfo; + } + } + offset = startInfo.end; + startInfo = null; + } +}; + +TwoOfFiveReader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +TwoOfFiveReader.prototype._findEnd = function () { + var self = this, + endInfo, + tmp, + offset; + + self._row.reverse(); + offset = self._nextSet(self._row); + endInfo = self._findPattern(self.STOP_PATTERN, offset, false, true); + self._row.reverse(); + + if (endInfo === null) { + return null; + } + + // reverse numbers + tmp = endInfo.start; + endInfo.start = self._row.length - endInfo.end; + endInfo.end = self._row.length - tmp; + + return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null; +}; + +TwoOfFiveReader.prototype._decodeCode = function (counter) { + var j, + self = this, + sum = 0, + normalized, + error, + epsilon = self.AVG_CODE_ERROR, + code, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }; + + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + for (code = 0; code < self.CODE_PATTERN.length; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + if (bestMatch.error < epsilon) { + return bestMatch; + } +}; + +TwoOfFiveReader.prototype._decodePayload = function (counters, result, decodedCodes) { + var i, + self = this, + pos = 0, + counterLength = counters.length, + counter = [0, 0, 0, 0, 0], + code; + + while (pos < counterLength) { + for (i = 0; i < 5; i++) { + counter[i] = counters[pos] * this.barSpaceRatio[0]; + pos += 2; + } + code = self._decodeCode(counter); + if (!code) { + return null; + } + result.push(code.code + ""); + decodedCodes.push(code); + } + return code; +}; + +TwoOfFiveReader.prototype._verifyCounterLength = function (counters) { + return counters.length % 10 === 0; +}; + +TwoOfFiveReader.prototype._decode = function () { + var startInfo, + endInfo, + self = this, + code, + result = [], + decodedCodes = [], + counters; + + startInfo = self._findStart(); + if (!startInfo) { + return null; + } + decodedCodes.push(startInfo); + + endInfo = self._findEnd(); + if (!endInfo) { + return null; + } + + counters = self._fillCounters(startInfo.end, endInfo.start, false); + if (!self._verifyCounterLength(counters)) { + return null; + } + code = self._decodePayload(counters, result, decodedCodes); + if (!code) { + return null; + } + if (result.length < 5) { + return null; + } + + decodedCodes.push(endInfo); + return { + code: result.join(""), + start: startInfo.start, + end: endInfo.end, + startInfo: startInfo, + decodedCodes: decodedCodes + }; +}; + +/* harmony default export */ __webpack_exports__["a"] = TwoOfFiveReader; + +/***/ }), +/* 68 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); + + +function CodabarReader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); + this._counters = []; +} + +var properties = { + ALPHABETH_STRING: { value: "0123456789-$:/.+ABCD" }, + ALPHABET: { value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 45, 36, 58, 47, 46, 43, 65, 66, 67, 68] }, + CHARACTER_ENCODINGS: { value: [0x003, 0x006, 0x009, 0x060, 0x012, 0x042, 0x021, 0x024, 0x030, 0x048, 0x00c, 0x018, 0x045, 0x051, 0x054, 0x015, 0x01A, 0x029, 0x00B, 0x00E] }, + START_END: { value: [0x01A, 0x029, 0x00B, 0x00E] }, + MIN_ENCODED_CHARS: { value: 4 }, + MAX_ACCEPTABLE: { value: 2.0 }, + PADDING: { value: 1.5 }, + FORMAT: { value: "codabar", writeable: false } +}; + +CodabarReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +CodabarReader.prototype.constructor = CodabarReader; + +CodabarReader.prototype._decode = function () { + var self = this, + result = [], + start, + decodedChar, + pattern, + nextStart, + end; + + this._counters = self._fillCounters(); + start = self._findStart(); + if (!start) { + return null; + } + nextStart = start.startCounter; + + do { + pattern = self._toPattern(nextStart); + if (pattern < 0) { + return null; + } + decodedChar = self._patternToChar(pattern); + if (decodedChar < 0) { + return null; + } + result.push(decodedChar); + nextStart += 8; + if (result.length > 1 && self._isStartEnd(pattern)) { + break; + } + } while (nextStart < self._counters.length); + + // verify end + if (result.length - 2 < self.MIN_ENCODED_CHARS || !self._isStartEnd(pattern)) { + return null; + } + + // verify end white space + if (!self._verifyWhitespace(start.startCounter, nextStart - 8)) { + return null; + } + + if (!self._validateResult(result, start.startCounter)) { + return null; + } + + nextStart = nextStart > self._counters.length ? self._counters.length : nextStart; + end = start.start + self._sumCounters(start.startCounter, nextStart - 8); + + return { + code: result.join(""), + start: start.start, + end: end, + startInfo: start, + decodedCodes: result + }; +}; + +CodabarReader.prototype._verifyWhitespace = function (startCounter, endCounter) { + if (startCounter - 1 <= 0 || this._counters[startCounter - 1] >= this._calculatePatternLength(startCounter) / 2.0) { + if (endCounter + 8 >= this._counters.length || this._counters[endCounter + 7] >= this._calculatePatternLength(endCounter) / 2.0) { + return true; + } + } + return false; +}; + +CodabarReader.prototype._calculatePatternLength = function (offset) { + var i, + sum = 0; + + for (i = offset; i < offset + 7; i++) { + sum += this._counters[i]; + } + + return sum; +}; + +CodabarReader.prototype._thresholdResultPattern = function (result, startCounter) { + var self = this, + categorization = { + space: { + narrow: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE }, + wide: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE } + }, + bar: { + narrow: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE }, + wide: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE } + } + }, + kind, + cat, + i, + j, + pos = startCounter, + pattern; + + for (i = 0; i < result.length; i++) { + pattern = self._charToPattern(result[i]); + for (j = 6; j >= 0; j--) { + kind = (j & 1) === 2 ? categorization.bar : categorization.space; + cat = (pattern & 1) === 1 ? kind.wide : kind.narrow; + cat.size += self._counters[pos + j]; + cat.counts++; + pattern >>= 1; + } + pos += 8; + } + + ["space", "bar"].forEach(function (key) { + var newkind = categorization[key]; + newkind.wide.min = Math.floor((newkind.narrow.size / newkind.narrow.counts + newkind.wide.size / newkind.wide.counts) / 2); + newkind.narrow.max = Math.ceil(newkind.wide.min); + newkind.wide.max = Math.ceil((newkind.wide.size * self.MAX_ACCEPTABLE + self.PADDING) / newkind.wide.counts); + }); + + return categorization; +}; + +CodabarReader.prototype._charToPattern = function (char) { + var self = this, + charCode = char.charCodeAt(0), + i; + + for (i = 0; i < self.ALPHABET.length; i++) { + if (self.ALPHABET[i] === charCode) { + return self.CHARACTER_ENCODINGS[i]; + } + } + return 0x0; +}; + +CodabarReader.prototype._validateResult = function (result, startCounter) { + var self = this, + thresholds = self._thresholdResultPattern(result, startCounter), + i, + j, + kind, + cat, + size, + pos = startCounter, + pattern; + + for (i = 0; i < result.length; i++) { + pattern = self._charToPattern(result[i]); + for (j = 6; j >= 0; j--) { + kind = (j & 1) === 0 ? thresholds.bar : thresholds.space; + cat = (pattern & 1) === 1 ? kind.wide : kind.narrow; + size = self._counters[pos + j]; + if (size < cat.min || size > cat.max) { + return false; + } + pattern >>= 1; + } + pos += 8; + } + return true; +}; + +CodabarReader.prototype._patternToChar = function (pattern) { + var i, + self = this; + + for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) { + if (self.CHARACTER_ENCODINGS[i] === pattern) { + return String.fromCharCode(self.ALPHABET[i]); + } + } + return -1; +}; + +CodabarReader.prototype._computeAlternatingThreshold = function (offset, end) { + var i, + min = Number.MAX_VALUE, + max = 0, + counter; + + for (i = offset; i < end; i += 2) { + counter = this._counters[i]; + if (counter > max) { + max = counter; + } + if (counter < min) { + min = counter; + } + } + + return (min + max) / 2.0 | 0; +}; + +CodabarReader.prototype._toPattern = function (offset) { + var numCounters = 7, + end = offset + numCounters, + barThreshold, + spaceThreshold, + bitmask = 1 << numCounters - 1, + pattern = 0, + i, + threshold; + + if (end > this._counters.length) { + return -1; + } + + barThreshold = this._computeAlternatingThreshold(offset, end); + spaceThreshold = this._computeAlternatingThreshold(offset + 1, end); + + for (i = 0; i < numCounters; i++) { + threshold = (i & 1) === 0 ? barThreshold : spaceThreshold; + if (this._counters[offset + i] > threshold) { + pattern |= bitmask; + } + bitmask >>= 1; + } + + return pattern; +}; + +CodabarReader.prototype._isStartEnd = function (pattern) { + var i; + + for (i = 0; i < this.START_END.length; i++) { + if (this.START_END[i] === pattern) { + return true; + } + } + return false; +}; + +CodabarReader.prototype._sumCounters = function (start, end) { + var i, + sum = 0; + + for (i = start; i < end; i++) { + sum += this._counters[i]; + } + return sum; +}; + +CodabarReader.prototype._findStart = function () { + var self = this, + i, + pattern, + start = self._nextUnset(self._row), + end; + + for (i = 1; i < this._counters.length; i++) { + pattern = self._toPattern(i); + if (pattern !== -1 && self._isStartEnd(pattern)) { + // TODO: Look for whitespace ahead + start += self._sumCounters(0, i); + end = start + self._sumCounters(i, i + 8); + return { + start: start, + end: end, + startCounter: i, + endCounter: i + 8 + }; + } + } +}; + +/* harmony default export */ __webpack_exports__["a"] = CodabarReader; + +/***/ }), +/* 69 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); + + +function Code128Reader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); +} + +var properties = { + CODE_SHIFT: { value: 98 }, + CODE_C: { value: 99 }, + CODE_B: { value: 100 }, + CODE_A: { value: 101 }, + START_CODE_A: { value: 103 }, + START_CODE_B: { value: 104 }, + START_CODE_C: { value: 105 }, + STOP_CODE: { value: 106 }, + CODE_PATTERN: { value: [[2, 1, 2, 2, 2, 2], [2, 2, 2, 1, 2, 2], [2, 2, 2, 2, 2, 1], [1, 2, 1, 2, 2, 3], [1, 2, 1, 3, 2, 2], [1, 3, 1, 2, 2, 2], [1, 2, 2, 2, 1, 3], [1, 2, 2, 3, 1, 2], [1, 3, 2, 2, 1, 2], [2, 2, 1, 2, 1, 3], [2, 2, 1, 3, 1, 2], [2, 3, 1, 2, 1, 2], [1, 1, 2, 2, 3, 2], [1, 2, 2, 1, 3, 2], [1, 2, 2, 2, 3, 1], [1, 1, 3, 2, 2, 2], [1, 2, 3, 1, 2, 2], [1, 2, 3, 2, 2, 1], [2, 2, 3, 2, 1, 1], [2, 2, 1, 1, 3, 2], [2, 2, 1, 2, 3, 1], [2, 1, 3, 2, 1, 2], [2, 2, 3, 1, 1, 2], [3, 1, 2, 1, 3, 1], [3, 1, 1, 2, 2, 2], [3, 2, 1, 1, 2, 2], [3, 2, 1, 2, 2, 1], [3, 1, 2, 2, 1, 2], [3, 2, 2, 1, 1, 2], [3, 2, 2, 2, 1, 1], [2, 1, 2, 1, 2, 3], [2, 1, 2, 3, 2, 1], [2, 3, 2, 1, 2, 1], [1, 1, 1, 3, 2, 3], [1, 3, 1, 1, 2, 3], [1, 3, 1, 3, 2, 1], [1, 1, 2, 3, 1, 3], [1, 3, 2, 1, 1, 3], [1, 3, 2, 3, 1, 1], [2, 1, 1, 3, 1, 3], [2, 3, 1, 1, 1, 3], [2, 3, 1, 3, 1, 1], [1, 1, 2, 1, 3, 3], [1, 1, 2, 3, 3, 1], [1, 3, 2, 1, 3, 1], [1, 1, 3, 1, 2, 3], [1, 1, 3, 3, 2, 1], [1, 3, 3, 1, 2, 1], [3, 1, 3, 1, 2, 1], [2, 1, 1, 3, 3, 1], [2, 3, 1, 1, 3, 1], [2, 1, 3, 1, 1, 3], [2, 1, 3, 3, 1, 1], [2, 1, 3, 1, 3, 1], [3, 1, 1, 1, 2, 3], [3, 1, 1, 3, 2, 1], [3, 3, 1, 1, 2, 1], [3, 1, 2, 1, 1, 3], [3, 1, 2, 3, 1, 1], [3, 3, 2, 1, 1, 1], [3, 1, 4, 1, 1, 1], [2, 2, 1, 4, 1, 1], [4, 3, 1, 1, 1, 1], [1, 1, 1, 2, 2, 4], [1, 1, 1, 4, 2, 2], [1, 2, 1, 1, 2, 4], [1, 2, 1, 4, 2, 1], [1, 4, 1, 1, 2, 2], [1, 4, 1, 2, 2, 1], [1, 1, 2, 2, 1, 4], [1, 1, 2, 4, 1, 2], [1, 2, 2, 1, 1, 4], [1, 2, 2, 4, 1, 1], [1, 4, 2, 1, 1, 2], [1, 4, 2, 2, 1, 1], [2, 4, 1, 2, 1, 1], [2, 2, 1, 1, 1, 4], [4, 1, 3, 1, 1, 1], [2, 4, 1, 1, 1, 2], [1, 3, 4, 1, 1, 1], [1, 1, 1, 2, 4, 2], [1, 2, 1, 1, 4, 2], [1, 2, 1, 2, 4, 1], [1, 1, 4, 2, 1, 2], [1, 2, 4, 1, 1, 2], [1, 2, 4, 2, 1, 1], [4, 1, 1, 2, 1, 2], [4, 2, 1, 1, 1, 2], [4, 2, 1, 2, 1, 1], [2, 1, 2, 1, 4, 1], [2, 1, 4, 1, 2, 1], [4, 1, 2, 1, 2, 1], [1, 1, 1, 1, 4, 3], [1, 1, 1, 3, 4, 1], [1, 3, 1, 1, 4, 1], [1, 1, 4, 1, 1, 3], [1, 1, 4, 3, 1, 1], [4, 1, 1, 1, 1, 3], [4, 1, 1, 3, 1, 1], [1, 1, 3, 1, 4, 1], [1, 1, 4, 1, 3, 1], [3, 1, 1, 1, 4, 1], [4, 1, 1, 1, 3, 1], [2, 1, 1, 4, 1, 2], [2, 1, 1, 2, 1, 4], [2, 1, 1, 2, 3, 2], [2, 3, 3, 1, 1, 1, 2]] }, + SINGLE_CODE_ERROR: { value: 0.64 }, + AVG_CODE_ERROR: { value: 0.30 }, + FORMAT: { value: "code_128", writeable: false }, + MODULE_INDICES: { value: { bar: [0, 2, 4], space: [1, 3, 5] } } +}; + +Code128Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +Code128Reader.prototype.constructor = Code128Reader; + +Code128Reader.prototype._decodeCode = function (start, correction) { + var counter = [0, 0, 0, 0, 0, 0], + i, + self = this, + offset = start, + isWhite = !self._row[offset], + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: start, + end: start, + correction: { + bar: 1, + space: 1 + } + }, + code, + error; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + if (correction) { + self._correct(counter, correction); + } + for (code = 0; code < self.CODE_PATTERN.length; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + bestMatch.end = i; + if (bestMatch.code === -1 || bestMatch.error > self.AVG_CODE_ERROR) { + return null; + } + if (self.CODE_PATTERN[bestMatch.code]) { + bestMatch.correction.bar = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.bar); + bestMatch.correction.space = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.space); + } + return bestMatch; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +Code128Reader.prototype._correct = function (counter, correction) { + this._correctBars(counter, correction.bar, this.MODULE_INDICES.bar); + this._correctBars(counter, correction.space, this.MODULE_INDICES.space); +}; + +Code128Reader.prototype._findStart = function () { + var counter = [0, 0, 0, 0, 0, 0], + i, + self = this, + offset = self._nextSet(self._row), + isWhite = false, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0, + correction: { + bar: 1, + space: 1 + } + }, + code, + error, + j, + sum; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + for (code = self.START_CODE_A; code <= self.START_CODE_C; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + if (bestMatch.error < self.AVG_CODE_ERROR) { + bestMatch.start = i - sum; + bestMatch.end = i; + bestMatch.correction.bar = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.bar); + bestMatch.correction.space = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.space); + return bestMatch; + } + + for (j = 0; j < 4; j++) { + counter[j] = counter[j + 2]; + } + counter[4] = 0; + counter[5] = 0; + counterPos--; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +Code128Reader.prototype._decode = function () { + var self = this, + startInfo = self._findStart(), + code = null, + done = false, + result = [], + multiplier = 0, + checksum = 0, + codeset, + rawResult = [], + decodedCodes = [], + shiftNext = false, + unshift, + removeLastCharacter = true; + + if (startInfo === null) { + return null; + } + code = { + code: startInfo.code, + start: startInfo.start, + end: startInfo.end, + correction: { + bar: startInfo.correction.bar, + space: startInfo.correction.space + } + }; + decodedCodes.push(code); + checksum = code.code; + switch (code.code) { + case self.START_CODE_A: + codeset = self.CODE_A; + break; + case self.START_CODE_B: + codeset = self.CODE_B; + break; + case self.START_CODE_C: + codeset = self.CODE_C; + break; + default: + return null; + } + + while (!done) { + unshift = shiftNext; + shiftNext = false; + code = self._decodeCode(code.end, code.correction); + if (code !== null) { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = true; + } + + if (code.code !== self.STOP_CODE) { + rawResult.push(code.code); + multiplier++; + checksum += multiplier * code.code; + } + decodedCodes.push(code); + + switch (codeset) { + case self.CODE_A: + if (code.code < 64) { + result.push(String.fromCharCode(32 + code.code)); + } else if (code.code < 96) { + result.push(String.fromCharCode(code.code - 64)); + } else { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = false; + } + switch (code.code) { + case self.CODE_SHIFT: + shiftNext = true; + codeset = self.CODE_B; + break; + case self.CODE_B: + codeset = self.CODE_B; + break; + case self.CODE_C: + codeset = self.CODE_C; + break; + case self.STOP_CODE: + done = true; + break; + } + } + break; + case self.CODE_B: + if (code.code < 96) { + result.push(String.fromCharCode(32 + code.code)); + } else { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = false; + } + switch (code.code) { + case self.CODE_SHIFT: + shiftNext = true; + codeset = self.CODE_A; + break; + case self.CODE_A: + codeset = self.CODE_A; + break; + case self.CODE_C: + codeset = self.CODE_C; + break; + case self.STOP_CODE: + done = true; + break; + } + } + break; + case self.CODE_C: + if (code.code < 100) { + result.push(code.code < 10 ? "0" + code.code : code.code); + } else { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = false; + } + switch (code.code) { + case self.CODE_A: + codeset = self.CODE_A; + break; + case self.CODE_B: + codeset = self.CODE_B; + break; + case self.STOP_CODE: + done = true; + break; + } + } + break; + } + } else { + done = true; + } + if (unshift) { + codeset = codeset === self.CODE_A ? self.CODE_B : self.CODE_A; + } + } + + if (code === null) { + return null; + } + + code.end = self._nextUnset(self._row, code.end); + if (!self._verifyTrailingWhitespace(code)) { + return null; + } + + checksum -= multiplier * rawResult[rawResult.length - 1]; + if (checksum % 103 !== rawResult[rawResult.length - 1]) { + return null; + } + + if (!result.length) { + return null; + } + + // remove last code from result (checksum) + if (removeLastCharacter) { + result.splice(result.length - 1, 1); + } + + return { + code: result.join(""), + start: startInfo.start, + end: code.end, + codeset: codeset, + startInfo: startInfo, + decodedCodes: decodedCodes, + endInfo: code + }; +}; + +__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +function calculateCorrection(expected, normalized, indices) { + var length = indices.length, + sumNormalized = 0, + sumExpected = 0; + + while (length--) { + sumExpected += expected[indices[length]]; + sumNormalized += normalized[indices[length]]; + } + return sumExpected / sumNormalized; +} + +/* harmony default export */ __webpack_exports__["a"] = Code128Reader; + +/***/ }), +/* 70 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__code_39_reader__ = __webpack_require__(31); + + +function Code39VINReader() { + __WEBPACK_IMPORTED_MODULE_0__code_39_reader__["a" /* default */].call(this); +} + +var patterns = { + IOQ: /[IOQ]/g, + AZ09: /[A-Z0-9]{17}/ +}; + +Code39VINReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__code_39_reader__["a" /* default */].prototype); +Code39VINReader.prototype.constructor = Code39VINReader; + +// Cribbed from: +// https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/client/result/VINResultParser.java +Code39VINReader.prototype._decode = function () { + var result = __WEBPACK_IMPORTED_MODULE_0__code_39_reader__["a" /* default */].prototype._decode.apply(this); + if (!result) { + return null; + } + + var code = result.code; + + if (!code) { + return null; + } + + code = code.replace(patterns.IOQ, ''); + + if (!code.match(patterns.AZ09)) { + if (true) { + console.log('Failed AZ09 pattern code:', code); + } + return null; + } + + if (!this._checkChecksum(code)) { + return null; + } + + result.code = code; + return result; +}; + +Code39VINReader.prototype._checkChecksum = function (code) { + // TODO + return !!code; +}; + +/* harmony default export */ __webpack_exports__["a"] = Code39VINReader; + +/***/ }), +/* 71 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(3); + + + +function Code93Reader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); +} + +var ALPHABETH_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"; + +var properties = { + ALPHABETH_STRING: { value: ALPHABETH_STRING }, + ALPHABET: { value: ALPHABETH_STRING.split('').map(function (char) { + return char.charCodeAt(0); + }) }, + CHARACTER_ENCODINGS: { value: [0x114, 0x148, 0x144, 0x142, 0x128, 0x124, 0x122, 0x150, 0x112, 0x10A, 0x1A8, 0x1A4, 0x1A2, 0x194, 0x192, 0x18A, 0x168, 0x164, 0x162, 0x134, 0x11A, 0x158, 0x14C, 0x146, 0x12C, 0x116, 0x1B4, 0x1B2, 0x1AC, 0x1A6, 0x196, 0x19A, 0x16C, 0x166, 0x136, 0x13A, 0x12E, 0x1D4, 0x1D2, 0x1CA, 0x16E, 0x176, 0x1AE, 0x126, 0x1DA, 0x1D6, 0x132, 0x15E] }, + ASTERISK: { value: 0x15E }, + FORMAT: { value: "code_93", writeable: false } +}; + +Code93Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +Code93Reader.prototype.constructor = Code93Reader; + +Code93Reader.prototype._decode = function () { + var self = this, + counters = [0, 0, 0, 0, 0, 0], + result = [], + start = self._findStart(), + decodedChar, + lastStart, + pattern, + nextStart; + + if (!start) { + return null; + } + nextStart = self._nextSet(self._row, start.end); + + do { + counters = self._toCounters(nextStart, counters); + pattern = self._toPattern(counters); + if (pattern < 0) { + return null; + } + decodedChar = self._patternToChar(pattern); + if (decodedChar < 0) { + return null; + } + result.push(decodedChar); + lastStart = nextStart; + nextStart += __WEBPACK_IMPORTED_MODULE_1__common_array_helper__["a" /* default */].sum(counters); + nextStart = self._nextSet(self._row, nextStart); + } while (decodedChar !== '*'); + result.pop(); + + if (!result.length) { + return null; + } + + if (!self._verifyEnd(lastStart, nextStart, counters)) { + return null; + } + + if (!self._verifyChecksums(result)) { + return null; + } + + result = result.slice(0, result.length - 2); + if ((result = self._decodeExtended(result)) === null) { + return null; + }; + + return { + code: result.join(""), + start: start.start, + end: nextStart, + startInfo: start, + decodedCodes: result + }; +}; + +Code93Reader.prototype._verifyEnd = function (lastStart, nextStart) { + if (lastStart === nextStart || !this._row[nextStart]) { + return false; + } + return true; +}; + +Code93Reader.prototype._patternToChar = function (pattern) { + var i, + self = this; + + for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) { + if (self.CHARACTER_ENCODINGS[i] === pattern) { + return String.fromCharCode(self.ALPHABET[i]); + } + } + return -1; +}; + +Code93Reader.prototype._toPattern = function (counters) { + var numCounters = counters.length; + var pattern = 0; + var sum = 0; + for (var i = 0; i < numCounters; i++) { + sum += counters[i]; + } + + for (var _i = 0; _i < numCounters; _i++) { + var normalized = Math.round(counters[_i] * 9 / sum); + if (normalized < 1 || normalized > 4) { + return -1; + } + if ((_i & 1) === 0) { + for (var j = 0; j < normalized; j++) { + pattern = pattern << 1 | 1; + } + } else { + pattern <<= normalized; + } + } + + return pattern; +}; + +Code93Reader.prototype._findStart = function () { + var self = this, + offset = self._nextSet(self._row), + patternStart = offset, + counter = [0, 0, 0, 0, 0, 0], + counterPos = 0, + isWhite = false, + i, + j, + whiteSpaceMustStart; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + // find start pattern + if (self._toPattern(counter) === self.ASTERISK) { + whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - (i - patternStart) / 4)); + if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) { + return { + start: patternStart, + end: i + }; + } + } + + patternStart += counter[0] + counter[1]; + for (j = 0; j < 4; j++) { + counter[j] = counter[j + 2]; + } + counter[4] = 0; + counter[5] = 0; + counterPos--; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +Code93Reader.prototype._decodeExtended = function (charArray) { + var length = charArray.length; + var result = []; + for (var i = 0; i < length; i++) { + var char = charArray[i]; + if (char >= 'a' && char <= 'd') { + if (i > length - 2) { + return null; + } + var nextChar = charArray[++i]; + var nextCharCode = nextChar.charCodeAt(0); + var decodedChar = void 0; + switch (char) { + case 'a': + if (nextChar >= 'A' && nextChar <= 'Z') { + decodedChar = String.fromCharCode(nextCharCode - 64); + } else { + return null; + } + break; + case 'b': + if (nextChar >= 'A' && nextChar <= 'E') { + decodedChar = String.fromCharCode(nextCharCode - 38); + } else if (nextChar >= 'F' && nextChar <= 'J') { + decodedChar = String.fromCharCode(nextCharCode - 11); + } else if (nextChar >= 'K' && nextChar <= 'O') { + decodedChar = String.fromCharCode(nextCharCode + 16); + } else if (nextChar >= 'P' && nextChar <= 'S') { + decodedChar = String.fromCharCode(nextCharCode + 43); + } else if (nextChar >= 'T' && nextChar <= 'Z') { + decodedChar = String.fromCharCode(127); + } else { + return null; + } + break; + case 'c': + if (nextChar >= 'A' && nextChar <= 'O') { + decodedChar = String.fromCharCode(nextCharCode - 32); + } else if (nextChar === 'Z') { + decodedChar = ':'; + } else { + return null; + } + break; + case 'd': + if (nextChar >= 'A' && nextChar <= 'Z') { + decodedChar = String.fromCharCode(nextCharCode + 32); + } else { + return null; + } + break; + } + result.push(decodedChar); + } else { + result.push(char); + } + } + return result; +}; + +Code93Reader.prototype._verifyChecksums = function (charArray) { + return this._matchCheckChar(charArray, charArray.length - 2, 20) && this._matchCheckChar(charArray, charArray.length - 1, 15); +}; + +Code93Reader.prototype._matchCheckChar = function (charArray, index, maxWeight) { + var _this = this; + + var arrayToCheck = charArray.slice(0, index); + var length = arrayToCheck.length; + var weightedSums = arrayToCheck.reduce(function (sum, char, i) { + var weight = (i * -1 + (length - 1)) % maxWeight + 1; + var value = _this.ALPHABET.indexOf(char.charCodeAt(0)); + return sum + weight * value; + }, 0); + + var checkChar = this.ALPHABET[weightedSums % 47]; + return checkChar === charArray[index].charCodeAt(0); +}; + +/* harmony default export */ __webpack_exports__["a"] = Code93Reader; + +/***/ }), +/* 72 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function EAN2Reader() { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this); +} + +var properties = { + FORMAT: { value: "ean_2", writeable: false } +}; + +EAN2Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +EAN2Reader.prototype.constructor = EAN2Reader; + +EAN2Reader.prototype.decode = function (row, start) { + this._row = row; + var counters = [0, 0, 0, 0], + codeFrequency = 0, + i = 0, + offset = start, + end = this._row.length, + code, + result = [], + decodedCodes = []; + + for (i = 0; i < 2 && offset < end; i++) { + code = this._decodeCode(offset); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code % 10); + if (code.code >= this.CODE_G_START) { + codeFrequency |= 1 << 1 - i; + } + if (i != 1) { + offset = this._nextSet(this._row, code.end); + offset = this._nextUnset(this._row, offset); + } + } + + if (result.length != 2 || parseInt(result.join("")) % 4 !== codeFrequency) { + return null; + } + return { + code: result.join(""), + decodedCodes: decodedCodes, + end: code.end + }; +}; + +/* harmony default export */ __webpack_exports__["a"] = EAN2Reader; + +/***/ }), +/* 73 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function EAN5Reader() { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this); +} + +var properties = { + FORMAT: { value: "ean_5", writeable: false } +}; + +var CHECK_DIGIT_ENCODINGS = [24, 20, 18, 17, 12, 6, 3, 10, 9, 5]; + +EAN5Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +EAN5Reader.prototype.constructor = EAN5Reader; + +EAN5Reader.prototype.decode = function (row, start) { + this._row = row; + var counters = [0, 0, 0, 0], + codeFrequency = 0, + i = 0, + offset = start, + end = this._row.length, + code, + result = [], + decodedCodes = []; + + for (i = 0; i < 5 && offset < end; i++) { + code = this._decodeCode(offset); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code % 10); + if (code.code >= this.CODE_G_START) { + codeFrequency |= 1 << 4 - i; + } + if (i != 4) { + offset = this._nextSet(this._row, code.end); + offset = this._nextUnset(this._row, offset); + } + } + + if (result.length != 5) { + return null; + } + + if (extensionChecksum(result) !== determineCheckDigit(codeFrequency)) { + return null; + } + return { + code: result.join(""), + decodedCodes: decodedCodes, + end: code.end + }; +}; + +function determineCheckDigit(codeFrequency) { + var i; + for (i = 0; i < 10; i++) { + if (codeFrequency === CHECK_DIGIT_ENCODINGS[i]) { + return i; + } + } + return null; +} + +function extensionChecksum(result) { + var length = result.length, + sum = 0, + i; + + for (i = length - 2; i >= 0; i -= 2) { + sum += result[i]; + } + sum *= 3; + for (i = length - 1; i >= 0; i -= 2) { + sum += result[i]; + } + sum *= 3; + return sum % 10; +} + +/* harmony default export */ __webpack_exports__["a"] = EAN5Reader; + +/***/ }), +/* 74 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function EAN8Reader(opts, supplements) { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this, opts, supplements); +} + +var properties = { + FORMAT: { value: "ean_8", writeable: false } +}; + +EAN8Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +EAN8Reader.prototype.constructor = EAN8Reader; + +EAN8Reader.prototype._decodePayload = function (code, result, decodedCodes) { + var i, + self = this; + + for (i = 0; i < 4; i++) { + code = self._decodeCode(code.end, self.CODE_G_START); + if (!code) { + return null; + } + result.push(code.code); + decodedCodes.push(code); + } + + code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false); + if (code === null) { + return null; + } + decodedCodes.push(code); + + for (i = 0; i < 4; i++) { + code = self._decodeCode(code.end, self.CODE_G_START); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code); + } + + return code; +}; + +/* harmony default export */ __webpack_exports__["a"] = EAN8Reader; + +/***/ }), +/* 75 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(1); + + + + +function I2of5Reader(opts) { + opts = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()(getDefaulConfig(), opts); + __WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].call(this, opts); + this.barSpaceRatio = [1, 1]; + if (opts.normalizeBarSpaceWidth) { + this.SINGLE_CODE_ERROR = 0.38; + this.AVG_CODE_ERROR = 0.09; + } +} + +function getDefaulConfig() { + var config = {}; + + Object.keys(I2of5Reader.CONFIG_KEYS).forEach(function (key) { + config[key] = I2of5Reader.CONFIG_KEYS[key].default; + }); + return config; +} + +var N = 1, + W = 3, + properties = { + START_PATTERN: { value: [N, N, N, N] }, + STOP_PATTERN: { value: [N, N, W] }, + CODE_PATTERN: { value: [[N, N, W, W, N], [W, N, N, N, W], [N, W, N, N, W], [W, W, N, N, N], [N, N, W, N, W], [W, N, W, N, N], [N, W, W, N, N], [N, N, N, W, W], [W, N, N, W, N], [N, W, N, W, N]] }, + SINGLE_CODE_ERROR: { value: 0.78, writable: true }, + AVG_CODE_ERROR: { value: 0.38, writable: true }, + MAX_CORRECTION_FACTOR: { value: 5 }, + FORMAT: { value: "i2of5" } +}; + +I2of5Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].prototype, properties); +I2of5Reader.prototype.constructor = I2of5Reader; + +I2of5Reader.prototype._matchPattern = function (counter, code) { + if (this.config.normalizeBarSpaceWidth) { + var i, + counterSum = [0, 0], + codeSum = [0, 0], + correction = [0, 0], + correctionRatio = this.MAX_CORRECTION_FACTOR, + correctionRatioInverse = 1 / correctionRatio; + + for (i = 0; i < counter.length; i++) { + counterSum[i % 2] += counter[i]; + codeSum[i % 2] += code[i]; + } + correction[0] = codeSum[0] / counterSum[0]; + correction[1] = codeSum[1] / counterSum[1]; + + correction[0] = Math.max(Math.min(correction[0], correctionRatio), correctionRatioInverse); + correction[1] = Math.max(Math.min(correction[1], correctionRatio), correctionRatioInverse); + this.barSpaceRatio = correction; + for (i = 0; i < counter.length; i++) { + counter[i] *= this.barSpaceRatio[i % 2]; + } + } + return __WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].prototype._matchPattern.call(this, counter, code); +}; + +I2of5Reader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder) { + var counter = [], + self = this, + i, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }, + error, + j, + sum, + normalized, + epsilon = self.AVG_CODE_ERROR; + + isWhite = isWhite || false; + tryHarder = tryHarder || false; + + if (!offset) { + offset = self._nextSet(self._row); + } + + for (i = 0; i < pattern.length; i++) { + counter[i] = 0; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + error = self._matchPattern(counter, pattern); + if (error < epsilon) { + bestMatch.error = error; + bestMatch.start = i - sum; + bestMatch.end = i; + return bestMatch; + } + if (tryHarder) { + for (j = 0; j < counter.length - 2; j++) { + counter[j] = counter[j + 2]; + } + counter[counter.length - 2] = 0; + counter[counter.length - 1] = 0; + counterPos--; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +I2of5Reader.prototype._findStart = function () { + var self = this, + leadingWhitespaceStart, + offset = self._nextSet(self._row), + startInfo, + narrowBarWidth = 1; + + while (!startInfo) { + startInfo = self._findPattern(self.START_PATTERN, offset, false, true); + if (!startInfo) { + return null; + } + narrowBarWidth = Math.floor((startInfo.end - startInfo.start) / 4); + leadingWhitespaceStart = startInfo.start - narrowBarWidth * 10; + if (leadingWhitespaceStart >= 0) { + if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) { + return startInfo; + } + } + offset = startInfo.end; + startInfo = null; + } +}; + +I2of5Reader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +I2of5Reader.prototype._findEnd = function () { + var self = this, + endInfo, + tmp; + + self._row.reverse(); + endInfo = self._findPattern(self.STOP_PATTERN); + self._row.reverse(); + + if (endInfo === null) { + return null; + } + + // reverse numbers + tmp = endInfo.start; + endInfo.start = self._row.length - endInfo.end; + endInfo.end = self._row.length - tmp; + + return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null; +}; + +I2of5Reader.prototype._decodePair = function (counterPair) { + var i, + code, + codes = [], + self = this; + + for (i = 0; i < counterPair.length; i++) { + code = self._decodeCode(counterPair[i]); + if (!code) { + return null; + } + codes.push(code); + } + return codes; +}; + +I2of5Reader.prototype._decodeCode = function (counter) { + var j, + self = this, + sum = 0, + normalized, + error, + epsilon = self.AVG_CODE_ERROR, + code, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }; + + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + for (code = 0; code < self.CODE_PATTERN.length; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + if (bestMatch.error < epsilon) { + return bestMatch; + } +}; + +I2of5Reader.prototype._decodePayload = function (counters, result, decodedCodes) { + var i, + self = this, + pos = 0, + counterLength = counters.length, + counterPair = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], + codes; + + while (pos < counterLength) { + for (i = 0; i < 5; i++) { + counterPair[0][i] = counters[pos] * this.barSpaceRatio[0]; + counterPair[1][i] = counters[pos + 1] * this.barSpaceRatio[1]; + pos += 2; + } + codes = self._decodePair(counterPair); + if (!codes) { + return null; + } + for (i = 0; i < codes.length; i++) { + result.push(codes[i].code + ""); + decodedCodes.push(codes[i]); + } + } + return codes; +}; + +I2of5Reader.prototype._verifyCounterLength = function (counters) { + return counters.length % 10 === 0; +}; + +I2of5Reader.prototype._decode = function () { + var startInfo, + endInfo, + self = this, + code, + result = [], + decodedCodes = [], + counters; + + startInfo = self._findStart(); + if (!startInfo) { + return null; + } + decodedCodes.push(startInfo); + + endInfo = self._findEnd(); + if (!endInfo) { + return null; + } + + counters = self._fillCounters(startInfo.end, endInfo.start, false); + if (!self._verifyCounterLength(counters)) { + return null; + } + code = self._decodePayload(counters, result, decodedCodes); + if (!code) { + return null; + } + if (result.length % 2 !== 0 || result.length < 6) { + return null; + } + + decodedCodes.push(endInfo); + return { + code: result.join(""), + start: startInfo.start, + end: endInfo.end, + startInfo: startInfo, + decodedCodes: decodedCodes + }; +}; + +I2of5Reader.CONFIG_KEYS = { + normalizeBarSpaceWidth: { + 'type': 'boolean', + 'default': false, + 'description': 'If true, the reader tries to normalize the' + 'width-difference between bars and spaces' + } +}; + +/* harmony default export */ __webpack_exports__["a"] = I2of5Reader; + +/***/ }), +/* 76 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function UPCEReader(opts, supplements) { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this, opts, supplements); +} + +var properties = { + CODE_FREQUENCY: { value: [[56, 52, 50, 49, 44, 38, 35, 42, 41, 37], [7, 11, 13, 14, 19, 25, 28, 21, 22, 26]] }, + STOP_PATTERN: { value: [1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7] }, + FORMAT: { value: "upc_e", writeable: false } +}; + +UPCEReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +UPCEReader.prototype.constructor = UPCEReader; + +UPCEReader.prototype._decodePayload = function (code, result, decodedCodes) { + var i, + self = this, + codeFrequency = 0x0; + + for (i = 0; i < 6; i++) { + code = self._decodeCode(code.end); + if (!code) { + return null; + } + if (code.code >= self.CODE_G_START) { + code.code = code.code - self.CODE_G_START; + codeFrequency |= 1 << 5 - i; + } + result.push(code.code); + decodedCodes.push(code); + } + if (!self._determineParity(codeFrequency, result)) { + return null; + } + + return code; +}; + +UPCEReader.prototype._determineParity = function (codeFrequency, result) { + var i, nrSystem; + + for (nrSystem = 0; nrSystem < this.CODE_FREQUENCY.length; nrSystem++) { + for (i = 0; i < this.CODE_FREQUENCY[nrSystem].length; i++) { + if (codeFrequency === this.CODE_FREQUENCY[nrSystem][i]) { + result.unshift(nrSystem); + result.push(i); + return true; + } + } + } + return false; +}; + +UPCEReader.prototype._convertToUPCA = function (result) { + var upca = [result[0]], + lastDigit = result[result.length - 2]; + + if (lastDigit <= 2) { + upca = upca.concat(result.slice(1, 3)).concat([lastDigit, 0, 0, 0, 0]).concat(result.slice(3, 6)); + } else if (lastDigit === 3) { + upca = upca.concat(result.slice(1, 4)).concat([0, 0, 0, 0, 0]).concat(result.slice(4, 6)); + } else if (lastDigit === 4) { + upca = upca.concat(result.slice(1, 5)).concat([0, 0, 0, 0, 0, result[5]]); + } else { + upca = upca.concat(result.slice(1, 6)).concat([0, 0, 0, 0, lastDigit]); + } + + upca.push(result[result.length - 1]); + return upca; +}; + +UPCEReader.prototype._checksum = function (result) { + return __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype._checksum.call(this, this._convertToUPCA(result)); +}; + +UPCEReader.prototype._findEnd = function (offset, isWhite) { + isWhite = true; + return __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype._findEnd.call(this, offset, isWhite); +}; + +UPCEReader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } +}; + +/* harmony default export */ __webpack_exports__["a"] = UPCEReader; + +/***/ }), +/* 77 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function UPCReader(opts, supplements) { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this, opts, supplements); +} + +var properties = { + FORMAT: { value: "upc_a", writeable: false } +}; + +UPCReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +UPCReader.prototype.constructor = UPCReader; + +UPCReader.prototype._decode = function () { + var result = __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype._decode.call(this); + + if (result && result.code && result.code.length === 13 && result.code.charAt(0) === "0") { + result.code = result.code.substring(1); + return result; + } + return null; +}; + +/* harmony default export */ __webpack_exports__["a"] = UPCReader; + +/***/ }), +/* 78 */ +/***/ (function(module, exports) { + +module.exports = copy + +/** + * Copy the values from one mat2 to another + * + * @alias mat2.copy + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ +function copy(out, a) { + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + out[3] = a[3] + return out +} + + +/***/ }), +/* 79 */ +/***/ (function(module, exports) { + +module.exports = create + +/** + * Creates a new identity mat2 + * + * @alias mat2.create + * @returns {mat2} a new 2x2 matrix + */ +function create() { + var out = new Float32Array(4) + out[0] = 1 + out[1] = 0 + out[2] = 0 + out[3] = 1 + return out +} + + +/***/ }), +/* 80 */ +/***/ (function(module, exports) { + +module.exports = invert + +/** + * Inverts a mat2 + * + * @alias mat2.invert + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ +function invert(out, a) { + var a0 = a[0] + var a1 = a[1] + var a2 = a[2] + var a3 = a[3] + var det = a0 * a3 - a2 * a1 + + if (!det) return null + det = 1.0 / det + + out[0] = a3 * det + out[1] = -a1 * det + out[2] = -a2 * det + out[3] = a0 * det + + return out +} + + +/***/ }), +/* 81 */ +/***/ (function(module, exports) { + +module.exports = scale + +/** + * Scales a vec2 by a scalar number + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec2} out + */ +function scale(out, a, b) { + out[0] = a[0] * b + out[1] = a[1] * b + return out +} + +/***/ }), +/* 82 */ +/***/ (function(module, exports) { + +module.exports = transformMat2 + +/** + * Transforms the vec2 with a mat2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to transform + * @param {mat2} m matrix to transform with + * @returns {vec2} out + */ +function transformMat2(out, a, m) { + var x = a[0], + y = a[1] + out[0] = m[0] * x + m[2] * y + out[1] = m[1] * x + m[3] * y + return out +} + +/***/ }), +/* 83 */ +/***/ (function(module, exports) { + +module.exports = clone; + +/** + * Creates a new vec3 initialized with values from an existing vector + * + * @param {vec3} a vector to clone + * @returns {vec3} a new 3D vector + */ +function clone(a) { + var out = new Float32Array(3) + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + return out +} + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + +var hashClear = __webpack_require__(122), + hashDelete = __webpack_require__(123), + hashGet = __webpack_require__(124), + hashHas = __webpack_require__(125), + hashSet = __webpack_require__(126); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(10), + stackClear = __webpack_require__(149), + stackDelete = __webpack_require__(150), + stackGet = __webpack_require__(151), + stackHas = __webpack_require__(152), + stackSet = __webpack_require__(153); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(5); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports) { + +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +module.exports = apply; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseTimes = __webpack_require__(107), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2), + isBuffer = __webpack_require__(44), + isIndex = __webpack_require__(15), + isTypedArray = __webpack_require__(45); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; + + +/***/ }), +/* 89 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + + +/***/ }), +/* 90 */ +/***/ (function(module, exports) { + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(0); + +/** Built-in value references. */ +var objectCreate = Object.create; + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +module.exports = baseCreate; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayPush = __webpack_require__(90), + isFlattenable = __webpack_require__(128); + +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; +} + +module.exports = baseFlatten; + + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + +var createBaseFor = __webpack_require__(117); + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(13), + toKey = __webpack_require__(23); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + + +/***/ }), +/* 95 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(25), + isMasked = __webpack_require__(132), + isObject = __webpack_require__(0), + toSource = __webpack_require__(155); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; + + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isLength = __webpack_require__(26), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; + + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(0), + isPrototype = __webpack_require__(40), + nativeKeysIn = __webpack_require__(144); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = baseKeysIn; + + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stack = __webpack_require__(85), + assignMergeValue = __webpack_require__(35), + baseFor = __webpack_require__(93), + baseMergeDeep = __webpack_require__(101), + isObject = __webpack_require__(0), + keysIn = __webpack_require__(46); + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + if (isObject(srcValue)) { + stack || (stack = new Stack); + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(object[key], srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} + +module.exports = baseMerge; + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignMergeValue = __webpack_require__(35), + cloneBuffer = __webpack_require__(111), + cloneTypedArray = __webpack_require__(112), + copyArray = __webpack_require__(113), + initCloneObject = __webpack_require__(127), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2), + isArrayLikeObject = __webpack_require__(159), + isBuffer = __webpack_require__(44), + isFunction = __webpack_require__(25), + isObject = __webpack_require__(0), + isPlainObject = __webpack_require__(160), + isTypedArray = __webpack_require__(45), + toPlainObject = __webpack_require__(164); + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = object[key], + srcValue = source[key], + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); +} + +module.exports = baseMergeDeep; + + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + +var basePickBy = __webpack_require__(103), + hasIn = __webpack_require__(158); + +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ +function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); +} + +module.exports = basePick; + + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(94), + baseSet = __webpack_require__(105), + castPath = __webpack_require__(13); + +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ +function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; +} + +module.exports = basePickBy; + + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + +var identity = __webpack_require__(43), + overRest = __webpack_require__(41), + setToString = __webpack_require__(42); + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); +} + +module.exports = baseRest; + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignValue = __webpack_require__(36), + castPath = __webpack_require__(13), + isIndex = __webpack_require__(15), + isObject = __webpack_require__(0), + toKey = __webpack_require__(23); + +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} + +module.exports = baseSet; + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + +var constant = __webpack_require__(156), + defineProperty = __webpack_require__(37), + identity = __webpack_require__(43); + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +module.exports = baseSetToString; + + +/***/ }), +/* 107 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11), + arrayMap = __webpack_require__(89), + isArray = __webpack_require__(2), + isSymbol = __webpack_require__(27); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +var Uint8Array = __webpack_require__(86); + +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; +} + +module.exports = cloneArrayBuffer; + + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(5); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; + +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; +} + +module.exports = cloneBuffer; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(29)(module))) + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + +var cloneArrayBuffer = __webpack_require__(110); + +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} + +module.exports = cloneTypedArray; + + +/***/ }), +/* 113 */ +/***/ (function(module, exports) { + +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = copyArray; + + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignValue = __webpack_require__(36), + baseAssignValue = __webpack_require__(21); + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} + +module.exports = copyObject; + + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(5); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; + + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseRest = __webpack_require__(104), + isIterateeCall = __webpack_require__(129); + +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} + +module.exports = createAssigner; + + +/***/ }), +/* 117 */ +/***/ (function(module, exports) { + +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + +var flatten = __webpack_require__(157), + overRest = __webpack_require__(41), + setToString = __webpack_require__(42); + +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ +function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); +} + +module.exports = flatRest; + + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; + + +/***/ }), +/* 120 */ +/***/ (function(module, exports) { + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; + + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(13), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2), + isIndex = __webpack_require__(15), + isLength = __webpack_require__(26), + toKey = __webpack_require__(23); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; + + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; + + +/***/ }), +/* 123 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; + + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; + + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseCreate = __webpack_require__(91), + getPrototype = __webpack_require__(39), + isPrototype = __webpack_require__(40); + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; +} + +module.exports = initCloneObject; + + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2); + +/** Built-in value references. */ +var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; + +/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ +function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); +} + +module.exports = isFlattenable; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(17), + isArrayLike = __webpack_require__(24), + isIndex = __webpack_require__(15), + isObject = __webpack_require__(0); + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +module.exports = isIterateeCall; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(2), + isSymbol = __webpack_require__(27); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + + +/***/ }), +/* 131 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; + + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + +var coreJsData = __webpack_require__(115); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; + + +/***/ }), +/* 133 */ +/***/ (function(module, exports) { + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; + + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; + + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; + + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; + + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; + + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __webpack_require__) { + +var Hash = __webpack_require__(84), + ListCache = __webpack_require__(10), + Map = __webpack_require__(33); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; + + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + +var memoize = __webpack_require__(161); + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +module.exports = memoizeCapped; + + +/***/ }), +/* 144 */ +/***/ (function(module, exports) { + +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +module.exports = nativeKeysIn; + + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(38); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(29)(module))) + +/***/ }), +/* 146 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; + + +/***/ }), +/* 147 */ +/***/ (function(module, exports) { + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; + + +/***/ }), +/* 148 */ +/***/ (function(module, exports) { + +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +module.exports = shortOut; + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(10); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; + + +/***/ }), +/* 150 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; + + +/***/ }), +/* 151 */ +/***/ (function(module, exports) { + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; + + +/***/ }), +/* 152 */ +/***/ (function(module, exports) { + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; + + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(10), + Map = __webpack_require__(33), + MapCache = __webpack_require__(34); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; + + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __webpack_require__) { + +var memoizeCapped = __webpack_require__(143); + +/** Used to match property names within property paths. */ +var reLeadingDot = /^\./, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (reLeadingDot.test(string)) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +module.exports = stringToPath; + + +/***/ }), +/* 155 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; + + +/***/ }), +/* 156 */ +/***/ (function(module, exports) { + +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +module.exports = constant; + + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFlatten = __webpack_require__(92); + +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; +} + +module.exports = flatten; + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseHasIn = __webpack_require__(95), + hasPath = __webpack_require__(121); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; + + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArrayLike = __webpack_require__(24), + isObjectLike = __webpack_require__(6); + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +module.exports = isArrayLikeObject; + + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + getPrototype = __webpack_require__(39), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +module.exports = isPlainObject; + + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + +var MapCache = __webpack_require__(34); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; + + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __webpack_require__) { + +var basePick = __webpack_require__(102), + flatRest = __webpack_require__(118); + +/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ +var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); +}); + +module.exports = pick; + + +/***/ }), +/* 163 */ +/***/ (function(module, exports) { + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = stubFalse; + + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __webpack_require__) { + +var copyObject = __webpack_require__(114), + keysIn = __webpack_require__(46); + +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ +function toPlainObject(value) { + return copyObject(value, keysIn(value)); +} + +module.exports = toPlainObject; + + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseToString = __webpack_require__(108); + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +module.exports = toString; + + +/***/ }), +/* 166 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(48); + + +/***/ }) +/******/ ]) +}); +; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9teU1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDc1NjBjYzQ5MjcyMzFiMmUzNzg5Iiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzT2JqZWN0LmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvYmFyY29kZV9yZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL2FycmF5X2hlbHBlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2Vhbl9yZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3Jvb3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMi9jbG9uZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUdldFRhZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL2ltYWdlX2RlYnVnLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19MaXN0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX1N5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYXNzb2NJbmRleE9mLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jYXN0UGF0aC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZ2V0TWFwRGF0YS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faXNJbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fbmF0aXZlQ3JlYXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2VxLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL3NyYy9jb21tb24vY3ZfdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9pbWFnZV93cmFwcGVyLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlQXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2dldE5hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fdG9LZXkuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNBcnJheUxpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9pc0xlbmd0aC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9pc1N5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9tZXJnZS5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzIiwid2VicGFjazovLy8uL3NyYy9sb2NhdG9yL3RyYWNlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfMzlfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMi9kb3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX01hcC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fTWFwQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Fzc2lnbk1lcmdlVmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Fzc2lnblZhbHVlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZnJlZUdsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZ2V0UHJvdG90eXBlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fb3ZlclJlc3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3NldFRvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lkZW50aXR5LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzQnVmZmVyLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9rZXlzSW4uanMiLCJ3ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVhZ2dhLmpzIiwid2VicGFjazovLy8uL3NyYy9hbmFseXRpY3MvcmVzdWx0X2NvbGxlY3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL2NsdXN0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9ldmVudHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9tZWRpYURldmljZXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9zdWJJbWFnZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL3R5cGVkZWZzLmpzIiwid2VicGFjazovLy8uL3NyYy9jb25maWcvY29uZmlnLmRldi5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29uZmlnL2NvbmZpZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZGVjb2Rlci9iYXJjb2RlX2RlY29kZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2RlY29kZXIvYnJlc2VuaGFtLmpzIiwid2VicGFjazovLy8uL3NyYy9pbnB1dC9jYW1lcmFfYWNjZXNzLmpzIiwid2VicGFjazovLy8uL3NyYy9pbnB1dC9leGlmX2hlbHBlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5wdXQvZnJhbWVfZ3JhYmJlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5wdXQvaW1hZ2VfbG9hZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9pbnB1dC9pbnB1dF9zdHJlYW0uanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2F0b3IvYmFyY29kZV9sb2NhdG9yLmpzIiwid2VicGFjazovLy8uL3NyYy9sb2NhdG9yL3Jhc3Rlcml6ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2F0b3Ivc2tlbGV0b25pemVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvMm9mNV9yZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3JlYWRlci9jb2RhYmFyX3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfMTI4X3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfMzlfdmluX3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfOTNfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvZWFuXzJfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvZWFuXzVfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvZWFuXzhfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvaTJvZjVfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvdXBjX2VfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvdXBjX3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9+L2dsLW1hdDIvY29weS5qcyIsIndlYnBhY2s6Ly8vLi9+L2dsLW1hdDIvY3JlYXRlLmpzIiwid2VicGFjazovLy8uL34vZ2wtbWF0Mi9pbnZlcnQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9nbC12ZWMyL3NjYWxlLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMi90cmFuc2Zvcm1NYXQyLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMy9jbG9uZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fSGFzaC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fU3RhY2suanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX1VpbnQ4QXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2FwcGx5LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19hcnJheU1hcC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYXJyYXlQdXNoLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlQ3JlYXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlRmxhdHRlbi5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUZvci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUhhc0luLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZU1lcmdlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlTWVyZ2VEZWVwLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlUGljay5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZVBpY2tCeS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZVJlc3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VTZXRUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZVRpbWVzLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlVG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VVbmFyeS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY2xvbmVBcnJheUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY2xvbmVCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Nsb25lVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY29weUFycmF5LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jb3B5T2JqZWN0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jb3JlSnNEYXRhLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY3JlYXRlQmFzZUZvci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZmxhdFJlc3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2dldFJhd1RhZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZ2V0VmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2hhc1BhdGguanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2hhc2hDbGVhci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaERlbGV0ZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaEdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaEhhcy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaFNldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faW5pdENsb25lT2JqZWN0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19pc0ZsYXR0ZW5hYmxlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faXNLZXkuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2lzS2V5YWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faXNNYXNrZWQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2xpc3RDYWNoZUNsZWFyLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19saXN0Q2FjaGVEZWxldGUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2xpc3RDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fbGlzdENhY2hlSGFzLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19saXN0Q2FjaGVTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX21hcENhY2hlQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX21hcENhY2hlRGVsZXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19tYXBDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fbWFwQ2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX21hcENhY2hlU2V0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19tZW1vaXplQ2FwcGVkLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19uYXRpdmVLZXlzSW4uanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX25vZGVVdGlsLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fb3ZlckFyZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fc2hvcnRPdXQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3N0YWNrQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3N0YWNrRGVsZXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19zdGFja0dldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fc3RhY2tIYXMuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3N0YWNrU2V0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19zdHJpbmdUb1BhdGguanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3RvU291cmNlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2NvbnN0YW50LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2ZsYXR0ZW4uanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaGFzSW4uanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNBcnJheUxpa2VPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNQbGFpbk9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9tZW1vaXplLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL3BpY2suanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvc3R1YkZhbHNlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL3RvUGxhaW5PYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvdG9TdHJpbmcuanMiXSwibmFtZXMiOlsiQmFyY29kZVJlYWRlciIsImNvbmZpZyIsInN1cHBsZW1lbnRzIiwiX3JvdyIsInByb3RvdHlwZSIsIl9uZXh0VW5zZXQiLCJsaW5lIiwic3RhcnQiLCJpIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiX21hdGNoUGF0dGVybiIsImNvdW50ZXIiLCJjb2RlIiwibWF4U2luZ2xlRXJyb3IiLCJlcnJvciIsInNpbmdsZUVycm9yIiwic3VtIiwibW9kdWxvIiwiYmFyV2lkdGgiLCJjb3VudCIsInNjYWxlZCIsIlNJTkdMRV9DT0RFX0VSUk9SIiwiTnVtYmVyIiwiTUFYX1ZBTFVFIiwiTWF0aCIsImFicyIsIl9uZXh0U2V0Iiwib2Zmc2V0IiwiX2NvcnJlY3RCYXJzIiwiY29ycmVjdGlvbiIsImluZGljZXMiLCJ0bXAiLCJfbWF0Y2hUcmFjZSIsImNtcENvdW50ZXIiLCJlcHNpbG9uIiwic2VsZiIsImlzV2hpdGUiLCJjb3VudGVyUG9zIiwiYmVzdE1hdGNoIiwicHVzaCIsImVuZCIsImRlY29kZVBhdHRlcm4iLCJwYXR0ZXJuIiwicmVzdWx0IiwiX2RlY29kZSIsInJldmVyc2UiLCJkaXJlY3Rpb24iLCJESVJFQ1RJT04iLCJSRVZFUlNFIiwiRk9SV0FSRCIsImZvcm1hdCIsIkZPUk1BVCIsIl9tYXRjaFJhbmdlIiwidmFsdWUiLCJfZmlsbENvdW50ZXJzIiwiY291bnRlcnMiLCJfdG9Db3VudGVycyIsIm51bUNvdW50ZXJzIiwiQXJyYXlIZWxwZXIiLCJpbml0IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0ZWFibGUiLCJFeGNlcHRpb24iLCJTdGFydE5vdEZvdW5kRXhjZXB0aW9uIiwiQ29kZU5vdEZvdW5kRXhjZXB0aW9uIiwiUGF0dGVybk5vdEZvdW5kRXhjZXB0aW9uIiwiQ09ORklHX0tFWVMiLCJhcnIiLCJ2YWwiLCJsIiwic2h1ZmZsZSIsImoiLCJ4IiwiZmxvb3IiLCJyYW5kb20iLCJ0b1BvaW50TGlzdCIsInJvdyIsInJvd3MiLCJqb2luIiwidGhyZXNob2xkIiwic2NvcmVGdW5jIiwicXVldWUiLCJhcHBseSIsIm1heEluZGV4IiwibWF4IiwiRUFOUmVhZGVyIiwib3B0cyIsImdldERlZmF1bENvbmZpZyIsImNhbGwiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImRlZmF1bHQiLCJwcm9wZXJ0aWVzIiwiQ09ERV9MX1NUQVJUIiwiQ09ERV9HX1NUQVJUIiwiU1RBUlRfUEFUVEVSTiIsIlNUT1BfUEFUVEVSTiIsIk1JRERMRV9QQVRURVJOIiwiRVhURU5TSU9OX1NUQVJUX1BBVFRFUk4iLCJDT0RFX1BBVFRFUk4iLCJDT0RFX0ZSRVFVRU5DWSIsIkFWR19DT0RFX0VSUk9SIiwiY3JlYXRlIiwiY29uc3RydWN0b3IiLCJfZGVjb2RlQ29kZSIsImNvZGVyYW5nZSIsIl9maW5kUGF0dGVybiIsInRyeUhhcmRlciIsIl9maW5kU3RhcnQiLCJsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0Iiwic3RhcnRJbmZvIiwiX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSIsImVuZEluZm8iLCJ0cmFpbGluZ1doaXRlc3BhY2VFbmQiLCJfZmluZEVuZCIsIl9jYWxjdWxhdGVGaXJzdERpZ2l0IiwiY29kZUZyZXF1ZW5jeSIsIl9kZWNvZGVQYXlsb2FkIiwiZGVjb2RlZENvZGVzIiwiZmlyc3REaWdpdCIsInVuc2hpZnQiLCJyZXN1bHRJbmZvIiwiX2NoZWNrc3VtIiwiZXh0IiwiX2RlY29kZUV4dGVuc2lvbnMiLCJsYXN0Q29kZSIsInN1cHBsZW1lbnQiLCJjb2Rlc2V0IiwiZGVjb2RlIiwiZHJhd1JlY3QiLCJwb3MiLCJzaXplIiwiY3R4Iiwic3R5bGUiLCJzdHJva2VTdHlsZSIsImNvbG9yIiwiZmlsbFN0eWxlIiwibGluZVdpZHRoIiwiYmVnaW5QYXRoIiwic3Ryb2tlUmVjdCIsInkiLCJkcmF3UGF0aCIsInBhdGgiLCJkZWYiLCJtb3ZlVG8iLCJsaW5lVG8iLCJjbG9zZVBhdGgiLCJzdHJva2UiLCJkcmF3SW1hZ2UiLCJpbWFnZURhdGEiLCJjYW52YXNEYXRhIiwiZ2V0SW1hZ2VEYXRhIiwiZGF0YSIsImltYWdlRGF0YVBvcyIsImNhbnZhc0RhdGFQb3MiLCJwdXRJbWFnZURhdGEiLCJ2ZWMyIiwiY2xvbmUiLCJyZXF1aXJlIiwidmVjMyIsImltYWdlUmVmIiwidGhhdCIsInRvVmVjMiIsInRvVmVjMyIsInJvdW5kIiwiY29tcHV0ZUludGVncmFsSW1hZ2UyIiwiaW1hZ2VXcmFwcGVyIiwiaW50ZWdyYWxXcmFwcGVyIiwid2lkdGgiLCJoZWlnaHQiLCJpbnRlZ3JhbEltYWdlRGF0YSIsInBvc0EiLCJwb3NCIiwicG9zQyIsInBvc0QiLCJjb21wdXRlSW50ZWdyYWxJbWFnZSIsInYiLCJ1IiwidGhyZXNob2xkSW1hZ2UiLCJ0YXJnZXRXcmFwcGVyIiwidGFyZ2V0RGF0YSIsImNvbXB1dGVIaXN0b2dyYW0iLCJiaXRzUGVyUGl4ZWwiLCJiaXRTaGlmdCIsImJ1Y2tldENudCIsImhpc3QiLCJJbnQzMkFycmF5Iiwic2hhcnBlbkxpbmUiLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiLCJkZXRlcm1pbmVPdHN1VGhyZXNob2xkIiwicHgiLCJteCIsImRldGVybWluZVRocmVzaG9sZCIsInZldCIsInAxIiwicDIiLCJwMTIiLCJrIiwibTEiLCJtMiIsIm0xMiIsIm90c3VUaHJlc2hvbGQiLCJjb21wdXRlQmluYXJ5SW1hZ2UiLCJrZXJuZWwiLCJBIiwiQiIsIkMiLCJEIiwiYXZnIiwiY2x1c3RlciIsInBvaW50cyIsInByb3BlcnR5IiwicG9pbnQiLCJjbHVzdGVycyIsImFkZFRvQ2x1c3RlciIsIm5ld1BvaW50IiwiZm91bmQiLCJmaXRzIiwiYWRkIiwiQ2x1c3RlcjIiLCJjcmVhdGVQb2ludCIsIlRyYWNlciIsInRyYWNlIiwidmVjIiwiaXRlcmF0aW9uIiwibWF4SXRlcmF0aW9ucyIsInRvcCIsImNlbnRlclBvcyIsImN1cnJlbnRQb3MiLCJpZHgiLCJmb3J3YXJkIiwiZnJvbSIsInRvIiwidG9JZHgiLCJwcmVkaWN0ZWRQb3MiLCJ0aHJlc2hvbGRYIiwidGhyZXNob2xkWSIsIm1hdGNoIiwicHJlZGljdGVkIiwiRElMQVRFIiwiRVJPREUiLCJkaWxhdGUiLCJpbkltYWdlV3JhcHBlciIsIm91dEltYWdlV3JhcHBlciIsImluSW1hZ2VEYXRhIiwib3V0SW1hZ2VEYXRhIiwieVN0YXJ0MSIsInlTdGFydDIiLCJ4U3RhcnQxIiwieFN0YXJ0MiIsImVyb2RlIiwic3VidHJhY3QiLCJhSW1hZ2VXcmFwcGVyIiwiYkltYWdlV3JhcHBlciIsInJlc3VsdEltYWdlV3JhcHBlciIsImFJbWFnZURhdGEiLCJiSW1hZ2VEYXRhIiwiY0ltYWdlRGF0YSIsImJpdHdpc2VPciIsImNvdW50Tm9uWmVybyIsInRvcEdlbmVyaWMiLCJsaXN0IiwibWluSWR4IiwibWluIiwic2NvcmUiLCJoaXQiLCJpdGVtIiwiZ3JheUFycmF5RnJvbUltYWdlIiwiaHRtbEltYWdlIiwib2Zmc2V0WCIsImFycmF5IiwiY3R4RGF0YSIsImNvbXB1dGVHcmF5IiwiZ3JheUFycmF5RnJvbUNvbnRleHQiLCJncmF5QW5kSGFsZlNhbXBsZUZyb21DYW52YXNEYXRhIiwib3V0QXJyYXkiLCJ0b3BSb3dJZHgiLCJib3R0b21Sb3dJZHgiLCJlbmRJZHgiLCJvdXRXaWR0aCIsIm91dEltZ0lkeCIsImluV2lkdGgiLCJzaW5nbGVDaGFubmVsIiwibG9hZEltYWdlQXJyYXkiLCJzcmMiLCJjYWxsYmFjayIsImNhbnZhcyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImltZyIsIkltYWdlIiwib25sb2FkIiwiZ2V0Q29udGV4dCIsIlVpbnQ4QXJyYXkiLCJoYWxmU2FtcGxlIiwiaW5JbWdXcmFwcGVyIiwib3V0SW1nV3JhcHBlciIsImluSW1nIiwib3V0SW1nIiwiaHN2MnJnYiIsImhzdiIsInJnYiIsImgiLCJzIiwiYyIsIm0iLCJyIiwiZyIsImIiLCJfY29tcHV0ZURpdmlzb3JzIiwibiIsImxhcmdlRGl2aXNvcnMiLCJkaXZpc29ycyIsInNxcnQiLCJjb25jYXQiLCJfY29tcHV0ZUludGVyc2VjdGlvbiIsImFycjEiLCJhcnIyIiwiY2FsY3VsYXRlUGF0Y2hTaXplIiwicGF0Y2hTaXplIiwiaW1nU2l6ZSIsImRpdmlzb3JzWCIsImRpdmlzb3JzWSIsIndpZGVTaWRlIiwiY29tbW9uIiwibnJPZlBhdGNoZXNMaXN0IiwibnJPZlBhdGNoZXNNYXAiLCJuck9mUGF0Y2hlc0lkeCIsIm1lZGl1bSIsIm5yT2ZQYXRjaGVzIiwiZGVzaXJlZFBhdGNoU2l6ZSIsIm9wdGltYWxQYXRjaFNpemUiLCJmaW5kUGF0Y2hTaXplRm9yRGl2aXNvcnMiLCJfcGFyc2VDU1NEaW1lbnNpb25WYWx1ZXMiLCJkaW1lbnNpb24iLCJwYXJzZUZsb2F0IiwidW5pdCIsImluZGV4T2YiLCJfZGltZW5zaW9uc0NvbnZlcnRlcnMiLCJjb250ZXh0IiwiYm90dG9tIiwiY29tcHV0ZUltYWdlQXJlYSIsImlucHV0V2lkdGgiLCJpbnB1dEhlaWdodCIsImFyZWEiLCJwYXJzZWRBcmVhIiwicmVkdWNlIiwicGFyc2VkIiwiY2FsY3VsYXRlZCIsInN4Iiwic3kiLCJzdyIsInNoIiwiSW1hZ2VXcmFwcGVyIiwiQXJyYXlUeXBlIiwiaW5pdGlhbGl6ZSIsIkFycmF5IiwiaW5JbWFnZVdpdGhCb3JkZXIiLCJpbWdSZWYiLCJib3JkZXIiLCJzYW1wbGUiLCJseCIsImx5IiwidyIsImJhc2UiLCJhIiwiZCIsImUiLCJjbGVhckFycmF5Iiwic3ViSW1hZ2UiLCJzdWJJbWFnZUFzQ29weSIsInNpemVZIiwic2l6ZVgiLCJjb3B5VG8iLCJzcmNEYXRhIiwiZHN0RGF0YSIsImdldCIsImdldFNhZmUiLCJpbmRleE1hcHBpbmciLCJzZXQiLCJ6ZXJvQm9yZGVyIiwiaW52ZXJ0IiwiY29udm9sdmUiLCJreCIsImt5Iiwia1NpemUiLCJhY2N1IiwibW9tZW50cyIsImxhYmVsY291bnQiLCJ5c3EiLCJsYWJlbHN1bSIsImxhYmVsIiwibXUxMSIsIm11MDIiLCJtdTIwIiwieF8iLCJ5XyIsIlBJIiwiUElfNCIsIm0wMCIsIm0wMSIsIm0xMCIsIm0xMSIsIm0wMiIsIm0yMCIsInRoZXRhIiwicmFkIiwiaXNOYU4iLCJhdGFuIiwiY29zIiwic2luIiwic2hvdyIsInNjYWxlIiwiZnJhbWUiLCJjdXJyZW50IiwicGl4ZWwiLCJvdmVybGF5Iiwid2hpdGVSZ2IiLCJibGFja1JnYiIsInNlYXJjaERpcmVjdGlvbnMiLCJsYWJlbFdyYXBwZXIiLCJsYWJlbERhdGEiLCJlZGdlbGFiZWwiLCJjeSIsImRpciIsImN4IiwidmVydGV4MkQiLCJuZXh0IiwicHJldiIsImNvbnRvdXJUcmFjaW5nIiwiRnYiLCJDdiIsIlAiLCJsZGlyIiwiQ29kZTM5UmVhZGVyIiwiQUxQSEFCRVRIX1NUUklORyIsIkFMUEhBQkVUIiwiQ0hBUkFDVEVSX0VOQ09ESU5HUyIsIkFTVEVSSVNLIiwiZGVjb2RlZENoYXIiLCJsYXN0U3RhcnQiLCJuZXh0U3RhcnQiLCJfdG9QYXR0ZXJuIiwiX3BhdHRlcm5Ub0NoYXIiLCJwb3AiLCJwYXR0ZXJuU2l6ZSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIl9maW5kTmV4dFdpZHRoIiwibWluV2lkdGgiLCJtYXhOYXJyb3dXaWR0aCIsIm51bVdpZGVCYXJzIiwid2lkZUJhcldpZHRoIiwicGF0dGVyblN0YXJ0Iiwid2hpdGVTcGFjZU11c3RTdGFydCIsIl9pbnB1dFN0cmVhbSIsIl9mcmFtZWdyYWJiZXIiLCJfc3RvcHBlZCIsIl9jYW52YXNDb250YWluZXIiLCJpbWFnZSIsImRvbSIsIl9pbnB1dEltYWdlV3JhcHBlciIsIl9ib3hTaXplIiwiX2RlY29kZXIiLCJfd29ya2VyUG9vbCIsIl9vblVJVGhyZWFkIiwiX3Jlc3VsdENvbGxlY3RvciIsIl9jb25maWciLCJpbml0aWFsaXplRGF0YSIsImluaXRCdWZmZXJzIiwiQmFyY29kZURlY29kZXIiLCJkZWNvZGVyIiwiaW5pdElucHV0U3RyZWFtIiwiY2IiLCJ2aWRlbyIsImlucHV0U3RyZWFtIiwidHlwZSIsIklucHV0U3RyZWFtIiwiY3JlYXRlVmlkZW9TdHJlYW0iLCJjcmVhdGVJbWFnZVN0cmVhbSIsIiR2aWV3cG9ydCIsImdldFZpZXdQb3J0IiwicXVlcnlTZWxlY3RvciIsImFwcGVuZENoaWxkIiwiY3JlYXRlTGl2ZVN0cmVhbSIsIkNhbWVyYUFjY2VzcyIsInJlcXVlc3QiLCJjb25zdHJhaW50cyIsInRoZW4iLCJ0cmlnZ2VyIiwiY2F0Y2giLCJlcnIiLCJzZXRBdHRyaWJ1dGUiLCJzZXRJbnB1dFN0cmVhbSIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYW5SZWNvcmQiLCJiaW5kIiwidGFyZ2V0Iiwibm9kZU5hbWUiLCJub2RlVHlwZSIsInNlbGVjdG9yIiwiQmFyY29kZUxvY2F0b3IiLCJjaGVja0ltYWdlQ29uc3RyYWludHMiLCJsb2NhdG9yIiwiaW5pdENhbnZhcyIsIkZyYW1lR3JhYmJlciIsImFkanVzdFdvcmtlclBvb2wiLCJudW1PZldvcmtlcnMiLCJyZWFkeSIsInBsYXkiLCJjbGFzc05hbWUiLCJnZXRDYW52YXNTaXplIiwiY2xlYXJGaXgiLCJnZXRXaWR0aCIsImdldEhlaWdodCIsImNvbnNvbGUiLCJsb2ciLCJnZXRCb3VuZGluZ0JveGVzIiwibG9jYXRlIiwidHJhbnNmb3JtUmVzdWx0IiwidG9wUmlnaHQiLCJnZXRUb3BSaWdodCIsInhPZmZzZXQiLCJ5T2Zmc2V0IiwiYmFyY29kZXMiLCJtb3ZlTGluZSIsImJveCIsIm1vdmVCb3giLCJib3hlcyIsImNvcm5lciIsImFkZFJlc3VsdCIsImZpbHRlciIsImJhcmNvZGUiLCJjb2RlUmVzdWx0IiwiaGFzQ29kZVJlc3VsdCIsInNvbWUiLCJwdWJsaXNoUmVzdWx0IiwicmVzdWx0VG9QdWJsaXNoIiwiRXZlbnRzIiwicHVibGlzaCIsImxvY2F0ZUFuZERlY29kZSIsImRlY29kZUZyb21Cb3VuZGluZ0JveGVzIiwidXBkYXRlIiwiYXZhaWxhYmxlV29ya2VyIiwid29ya2VyVGhyZWFkIiwiYnVzeSIsImF0dGFjaERhdGEiLCJncmFiIiwid29ya2VyIiwicG9zdE1lc3NhZ2UiLCJjbWQiLCJidWZmZXIiLCJzdGFydENvbnRpbnVvdXNVcGRhdGUiLCJkZWxheSIsImZyZXF1ZW5jeSIsInRpbWVzdGFtcCIsIndpbmRvdyIsInJlcXVlc3RBbmltRnJhbWUiLCJwZXJmb3JtYW5jZSIsIm5vdyIsImluaXRXb3JrZXIiLCJibG9iVVJMIiwiZ2VuZXJhdGVXb3JrZXJCbG9iIiwiV29ya2VyIiwib25tZXNzYWdlIiwiZXZlbnQiLCJVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJtZXNzYWdlIiwiY29uZmlnRm9yV29ya2VyIiwid29ya2VySW50ZXJmYWNlIiwiZmFjdG9yeSIsIlF1YWdnYSIsIm9uUHJvY2Vzc2VkIiwic2V0UmVhZGVycyIsInJlYWRlcnMiLCJibG9iIiwiZmFjdG9yeVNvdXJjZSIsIl9fZmFjdG9yeVNvdXJjZV9fIiwiQmxvYiIsInRvU3RyaW5nIiwiY3JlYXRlT2JqZWN0VVJMIiwiY2FwYWNpdHkiLCJpbmNyZWFzZUJ5Iiwid29ya2Vyc1RvVGVybWluYXRlIiwic2xpY2UiLCJ0ZXJtaW5hdGUiLCJ3b3JrZXJJbml0aWFsaXplZCIsInN0b3AiLCJyZWxlYXNlIiwiY2xlYXJFdmVudEhhbmRsZXJzIiwicGF1c2UiLCJvbkRldGVjdGVkIiwic3Vic2NyaWJlIiwib2ZmRGV0ZWN0ZWQiLCJ1bnN1YnNjcmliZSIsIm9mZlByb2Nlc3NlZCIsInJlZ2lzdGVyUmVzdWx0Q29sbGVjdG9yIiwicmVzdWx0Q29sbGVjdG9yIiwiZGVjb2RlU2luZ2xlIiwicmVzdWx0Q2FsbGJhY2siLCJzZXF1ZW5jZSIsImRlYnVnIiwib25jZSIsIkltYWdlRGVidWciLCJSZXN1bHRDb2xsZWN0b3IiLCJjb250YWlucyIsImV2ZXJ5IiwicGFzc2VzRmlsdGVyIiwicmVzdWx0cyIsImNhcHR1cmUiLCJtYXRjaGVzQ29uc3RyYWludHMiLCJibGFja2xpc3QiLCJpbWFnZVNpemUiLCJ0b0RhdGFVUkwiLCJnZXRSZXN1bHRzIiwiZG90IiwicG9pbnRNYXAiLCJ1cGRhdGVDZW50ZXIiLCJwb2ludFRvQWRkIiwiaWQiLCJvdGhlclBvaW50Iiwic2ltaWxhcml0eSIsImdldFBvaW50cyIsImdldENlbnRlciIsImV2ZW50cyIsImdldEV2ZW50IiwiZXZlbnROYW1lIiwic3Vic2NyaWJlcnMiLCJjbGVhckV2ZW50cyIsInB1Ymxpc2hTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb24iLCJhc3luYyIsInNldFRpbWVvdXQiLCJzdWJzY3JpYmVyIiwiZW51bWVyYXRlRGV2aWNlcyIsIm5hdmlnYXRvciIsIm1lZGlhRGV2aWNlcyIsIlByb21pc2UiLCJyZWplY3QiLCJFcnJvciIsImdldFVzZXJNZWRpYSIsIlN1YkltYWdlIiwiSSIsIm9yaWdpbmFsU2l6ZSIsInVwZGF0ZURhdGEiLCJ1cGRhdGVGcm9tIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwid2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib1JlcXVlc3RBbmltYXRpb25GcmFtZSIsIm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiaW11bCIsImFoIiwiYWwiLCJiaCIsImJsIiwiYXNzaWduIiwiVHlwZUVycm9yIiwiaW5kZXgiLCJhcmd1bWVudHMiLCJuZXh0U291cmNlIiwibmV4dEtleSIsImhhc093blByb3BlcnR5IiwibW9kdWxlIiwiZXhwb3J0cyIsIm5hbWUiLCJmYWNpbmdNb2RlIiwiZHJhd0JvdW5kaW5nQm94Iiwic2hvd0ZyZXF1ZW5jeSIsImRyYXdTY2FubGluZSIsInNob3dQYXR0ZXJuIiwic2hvd0NhbnZhcyIsInNob3dQYXRjaGVzIiwic2hvd0ZvdW5kUGF0Y2hlcyIsInNob3dTa2VsZXRvbiIsInNob3dMYWJlbHMiLCJzaG93UGF0Y2hMYWJlbHMiLCJzaG93UmVtYWluaW5nUGF0Y2hMYWJlbHMiLCJib3hGcm9tUGF0Y2hlcyIsInNob3dUcmFuc2Zvcm1lZCIsInNob3dUcmFuc2Zvcm1lZEJveCIsInNob3dCQiIsIkVOViIsIm5vZGUiLCJSRUFERVJTIiwiY29kZV8xMjhfcmVhZGVyIiwiZWFuX3JlYWRlciIsImVhbl81X3JlYWRlciIsImVhbl8yX3JlYWRlciIsImVhbl84X3JlYWRlciIsImNvZGVfMzlfcmVhZGVyIiwiY29kZV8zOV92aW5fcmVhZGVyIiwiY29kYWJhcl9yZWFkZXIiLCJ1cGNfcmVhZGVyIiwidXBjX2VfcmVhZGVyIiwiaTJvZjVfcmVhZGVyIiwiY29kZV85M19yZWFkZXIiLCJDb2RlOTNSZWFkZXIiLCJpbnB1dEltYWdlV3JhcHBlciIsIl9jYW52YXMiLCJfYmFyY29kZVJlYWRlcnMiLCJpbml0UmVhZGVycyIsImluaXRDb25maWciLCIkZGVidWciLCJyZWFkZXJDb25maWciLCJyZWFkZXIiLCJjb25maWd1cmF0aW9uIiwibWFwIiwiSlNPTiIsInN0cmluZ2lmeSIsInZpcyIsInByb3AiLCJkaXNwbGF5IiwiZ2V0RXh0ZW5kZWRMaW5lIiwiYW5nbGUiLCJleHRlbmRMaW5lIiwiYW1vdW50IiwiZXh0ZW5zaW9uIiwiY2VpbCIsImdldExpbmUiLCJ0cnlEZWNvZGUiLCJiYXJjb2RlTGluZSIsIkJyZXNlbmhhbSIsImdldEJhcmNvZGVMaW5lIiwicHJpbnRGcmVxdWVuY3kiLCJ0b0JpbmFyeUxpbmUiLCJwcmludFBhdHRlcm4iLCJ0cnlEZWNvZGVCcnV0ZUZvcmNlIiwibGluZUFuZ2xlIiwic2lkZUxlbmd0aCIsInBvdyIsInNsaWNlcyIsInhkaXIiLCJ5ZGlyIiwiZ2V0TGluZUxlbmd0aCIsImRlY29kZUZyb21Cb3VuZGluZ0JveCIsImxpbmVMZW5ndGgiLCJhdGFuMiIsIm11bHRpcGxlIiwiU2xvcGUiLCJESVIiLCJVUCIsIkRPV04iLCJ4MCIsInkwIiwieDEiLCJ5MSIsInN0ZWVwIiwiZGVsdGF4IiwiZGVsdGF5IiwieXN0ZXAiLCJyZWFkIiwic2xvcGUiLCJzbG9wZTIiLCJleHRyZW1hIiwiY3VycmVudERpciIsInJUaHJlc2hvbGQiLCJmaWxsQ29sb3IiLCJmaWxsUmVjdCIsImZhY2luZ01hdGNoaW5nIiwic3RyZWFtUmVmIiwid2FpdEZvclZpZGVvIiwicmVzb2x2ZSIsImF0dGVtcHRzIiwiY2hlY2tWaWRlbyIsInZpZGVvV2lkdGgiLCJ2aWRlb0hlaWdodCIsImluaXRDYW1lcmEiLCJzdHJlYW0iLCJzcmNPYmplY3QiLCJkZXByZWNhdGVkQ29uc3RyYWludHMiLCJ2aWRlb0NvbnN0cmFpbnRzIiwibm9ybWFsaXplZCIsIm1pbkFzcGVjdFJhdGlvIiwiYXNwZWN0UmF0aW8iLCJmYWNpbmciLCJwaWNrQ29uc3RyYWludHMiLCJub3JtYWxpemVkQ29uc3RyYWludHMiLCJhdWRpbyIsImRldmljZUlkIiwiZW51bWVyYXRlVmlkZW9EZXZpY2VzIiwiZGV2aWNlcyIsImRldmljZSIsImtpbmQiLCJnZXRBY3RpdmVUcmFjayIsInRyYWNrcyIsImdldFZpZGVvVHJhY2tzIiwiZ2V0QWN0aXZlU3RyZWFtTGFiZWwiLCJ0cmFjayIsIkV4aWZUYWdzIiwiQXZhaWxhYmxlVGFncyIsImZpbmRUYWdzSW5PYmplY3RVUkwiLCJ0YWdzIiwidGVzdCIsIm9iamVjdFVSTFRvQmxvYiIsInJlYWRUb0J1ZmZlciIsImZpbmRUYWdzSW5CdWZmZXIiLCJiYXNlNjRUb0FycmF5QnVmZmVyIiwiZGF0YVVybCIsImJhc2U2NCIsInJlcGxhY2UiLCJiaW5hcnkiLCJhdG9iIiwibGVuIiwiQXJyYXlCdWZmZXIiLCJ2aWV3IiwiY2hhckNvZGVBdCIsImZpbGVSZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJ1cmwiLCJodHRwIiwiWE1MSHR0cFJlcXVlc3QiLCJvcGVuIiwicmVzcG9uc2VUeXBlIiwib25yZWFkeXN0YXRlY2hhbmdlIiwicmVhZHlTdGF0ZSIsIkRPTkUiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9uZXJyb3IiLCJzZW5kIiwiZmlsZSIsInNlbGVjdGVkVGFncyIsImRhdGFWaWV3IiwiRGF0YVZpZXciLCJieXRlTGVuZ3RoIiwiZXhpZlRhZ3MiLCJzZWxlY3RlZFRhZyIsImV4aWZUYWciLCJ0YWciLCJtYXJrZXIiLCJnZXRVaW50OCIsInJlYWRFWElGRGF0YSIsImdldFVpbnQxNiIsImdldFN0cmluZ0Zyb21CdWZmZXIiLCJ0aWZmT2Zmc2V0IiwiYmlnRW5kIiwiZmlyc3RJRkRPZmZzZXQiLCJnZXRVaW50MzIiLCJyZWFkVGFncyIsInRpZmZTdGFydCIsImRpclN0YXJ0Iiwic3RyaW5ncyIsImVudHJpZXMiLCJlbnRyeU9mZnNldCIsInJlYWRUYWdWYWx1ZSIsIm51bVZhbHVlcyIsIm91dHN0ciIsIlRPX1JBRElBTlMiLCJhZGp1c3RDYW52YXNTaXplIiwidGFyZ2V0U2l6ZSIsIl90aGF0IiwiX3N0cmVhbUNvbmZpZyIsImdldENvbmZpZyIsIl92aWRlb19zaXplIiwiZ2V0UmVhbFdpZHRoIiwiZ2V0UmVhbEhlaWdodCIsIl9jYW52YXNTaXplIiwiX3NpemUiLCJfc3giLCJfc3kiLCJfY3R4IiwiX2RhdGEiLCJ2aWRlb1NpemUiLCJjYW52YXNTaXplIiwiZ2V0RGF0YSIsImRvSGFsZlNhbXBsZSIsImdldEZyYW1lIiwiZHJhd2FibGUiLCJkcmF3QW5nbGUiLCJvcmllbnRhdGlvbiIsInRyYW5zbGF0ZSIsInJvdGF0ZSIsImdldFNpemUiLCJJbWFnZUxvYWRlciIsImxvYWQiLCJkaXJlY3RvcnkiLCJodG1sSW1hZ2VzU3JjQXJyYXkiLCJodG1sSW1hZ2VzQXJyYXkiLCJudW0iLCJub3RMb2FkZWQiLCJhZGRJbWFnZSIsImxvYWRlZCIsImxvYWRlZEltZyIsIm5vdGxvYWRlZEltZ3MiLCJzcGxpY2UiLCJpbWdOYW1lIiwic3Vic3RyIiwibGFzdEluZGV4T2YiLCJhZGRPbmxvYWRIYW5kbGVyIiwiX2V2ZW50TmFtZXMiLCJfZXZlbnRIYW5kbGVycyIsIl9jYWxjdWxhdGVkV2lkdGgiLCJfY2FsY3VsYXRlZEhlaWdodCIsIl90b3BSaWdodCIsImluaXRTaXplIiwic2V0V2lkdGgiLCJzZXRIZWlnaHQiLCJlbmRlZCIsInNldEN1cnJlbnRUaW1lIiwidGltZSIsImN1cnJlbnRUaW1lIiwiZiIsImJvb2wiLCJoYW5kbGVycyIsImhhbmRsZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYXJncyIsInNldFRvcFJpZ2h0Iiwic2V0Q2FudmFzU2l6ZSIsImZyYW1lSWR4IiwicGF1c2VkIiwiaW1nQXJyYXkiLCJiYXNlVXJsIiwiY2FsY3VsYXRlZFdpZHRoIiwiY2FsY3VsYXRlZEhlaWdodCIsImxvYWRJbWFnZXMiLCJpbWdzIiwicHVibGlzaEV2ZW50IiwibmV3V2lkdGgiLCJuZXdIZWlnaHQiLCJ0cmFuc2Zvcm1NYXQyIiwibWF0MiIsImNvcHkiLCJfY3VycmVudEltYWdlV3JhcHBlciIsIl9za2VsSW1hZ2VXcmFwcGVyIiwiX3N1YkltYWdlV3JhcHBlciIsIl9sYWJlbEltYWdlV3JhcHBlciIsIl9wYXRjaEdyaWQiLCJfcGF0Y2hMYWJlbEdyaWQiLCJfaW1hZ2VUb1BhdGNoR3JpZCIsIl9iaW5hcnlJbWFnZVdyYXBwZXIiLCJfcGF0Y2hTaXplIiwiX251bVBhdGNoZXMiLCJfc2tlbGV0b25pemVyIiwic2tlbGV0b25JbWFnZURhdGEiLCJza2VsZXRvbml6ZXIiLCJnbG9iYWwiLCJ1c2VXb3JrZXIiLCJwYXRjaGVzIiwib3ZlckF2ZyIsInBhdGNoIiwidHJhbnNNYXQiLCJtaW54IiwibWlueSIsIm1heHgiLCJtYXh5IiwiYmluYXJpemVJbWFnZSIsImZpbmRQYXRjaGVzIiwicGF0Y2hlc0ZvdW5kIiwicmFzdGVyaXplciIsInJhc3RlclJlc3VsdCIsInNrZWxldG9uaXplIiwiUmFzdGVyaXplciIsInJhc3Rlcml6ZSIsImRlc2NyaWJlUGF0Y2giLCJmaW5kQmlnZ2VzdENvbm5lY3RlZEFyZWFzIiwibWF4TGFiZWwiLCJsYWJlbEhpc3QiLCJ0b3BMYWJlbHMiLCJzb3J0IiwiZWwiLCJmaW5kQm94ZXMiLCJzaW1pbGFyTW9tZW50cyIsInRvcENsdXN0ZXIiLCJwYXRjaFBvcyIsImVsaWdpYmxlTW9tZW50cyIsIm1hdGNoaW5nTW9tZW50cyIsIm1pbkNvbXBvbmVudFdlaWdodCIsInJhc3Rlcml6ZUFuZ3VsYXJTaW1pbGFyaXR5IiwiY3VycklkeCIsIm5vdFlldFByb2Nlc3NlZCIsImN1cnJlbnRJZHgiLCJjdXJyZW50UGF0Y2giLCJjcmVhdGVDb250b3VyMkQiLCJmaXJzdFZlcnRleCIsImluc2lkZUNvbnRvdXJzIiwibmV4dHBlZXIiLCJwcmV2cGVlciIsIkNPTlRPVVJfRElSIiwiQ1dfRElSIiwiQ0NXX0RJUiIsIlVOS05PV05fRElSIiwiT1VUU0lERV9FREdFIiwiSU5TSURFX0VER0UiLCJ0cmFjZXIiLCJkZXB0aGxhYmVsIiwiYmMiLCJsYyIsImxhYmVsaW5kZXgiLCJjb2xvck1hcCIsInZlcnRleCIsInAiLCJjYyIsInNjIiwiY29ubmVjdGVkQ291bnQiLCJkcmF3Q29udG91ciIsImZpcnN0Q29udG91ciIsInBxIiwiaXEiLCJxIiwiU2tlbGV0b25pemVyIiwic3RkbGliIiwiZm9yZWlnbiIsImltYWdlcyIsImluSW1hZ2VQdHIiLCJvdXRJbWFnZVB0ciIsImFJbWFnZVB0ciIsImJJbWFnZVB0ciIsImltYWdlUHRyIiwibWVtY3B5Iiwic3JjSW1hZ2VQdHIiLCJkc3RJbWFnZVB0ciIsInN1YkltYWdlUHRyIiwiZXJvZGVkSW1hZ2VQdHIiLCJ0ZW1wSW1hZ2VQdHIiLCJza2VsSW1hZ2VQdHIiLCJkb25lIiwiVHdvT2ZGaXZlUmVhZGVyIiwiYmFyU3BhY2VSYXRpbyIsIk4iLCJXIiwid3JpdGFibGUiLCJzdGFydFBhdHRlcm5MZW5ndGgiLCJuYXJyb3dCYXJXaWR0aCIsImNvdW50ZXJMZW5ndGgiLCJfdmVyaWZ5Q291bnRlckxlbmd0aCIsIkNvZGFiYXJSZWFkZXIiLCJfY291bnRlcnMiLCJTVEFSVF9FTkQiLCJNSU5fRU5DT0RFRF9DSEFSUyIsIk1BWF9BQ0NFUFRBQkxFIiwiUEFERElORyIsInN0YXJ0Q291bnRlciIsIl9pc1N0YXJ0RW5kIiwiX3ZlcmlmeVdoaXRlc3BhY2UiLCJfdmFsaWRhdGVSZXN1bHQiLCJfc3VtQ291bnRlcnMiLCJlbmRDb3VudGVyIiwiX2NhbGN1bGF0ZVBhdHRlcm5MZW5ndGgiLCJfdGhyZXNob2xkUmVzdWx0UGF0dGVybiIsImNhdGVnb3JpemF0aW9uIiwic3BhY2UiLCJuYXJyb3ciLCJjb3VudHMiLCJ3aWRlIiwiYmFyIiwiY2F0IiwiX2NoYXJUb1BhdHRlcm4iLCJuZXdraW5kIiwiY2hhciIsImNoYXJDb2RlIiwidGhyZXNob2xkcyIsIl9jb21wdXRlQWx0ZXJuYXRpbmdUaHJlc2hvbGQiLCJiYXJUaHJlc2hvbGQiLCJzcGFjZVRocmVzaG9sZCIsImJpdG1hc2siLCJDb2RlMTI4UmVhZGVyIiwiQ09ERV9TSElGVCIsIkNPREVfQyIsIkNPREVfQiIsIkNPREVfQSIsIlNUQVJUX0NPREVfQSIsIlNUQVJUX0NPREVfQiIsIlNUQVJUX0NPREVfQyIsIlNUT1BfQ09ERSIsIk1PRFVMRV9JTkRJQ0VTIiwiX2NvcnJlY3QiLCJjYWxjdWxhdGVDb3JyZWN0aW9uIiwibXVsdGlwbGllciIsImNoZWNrc3VtIiwicmF3UmVzdWx0Iiwic2hpZnROZXh0IiwicmVtb3ZlTGFzdENoYXJhY3RlciIsImV4cGVjdGVkIiwic3VtTm9ybWFsaXplZCIsInN1bUV4cGVjdGVkIiwiQ29kZTM5VklOUmVhZGVyIiwicGF0dGVybnMiLCJJT1EiLCJBWjA5IiwiX2NoZWNrQ2hlY2tzdW0iLCJzcGxpdCIsIl92ZXJpZnlFbmQiLCJfdmVyaWZ5Q2hlY2tzdW1zIiwiX2RlY29kZUV4dGVuZGVkIiwiY2hhckFycmF5IiwibmV4dENoYXIiLCJuZXh0Q2hhckNvZGUiLCJfbWF0Y2hDaGVja0NoYXIiLCJtYXhXZWlnaHQiLCJhcnJheVRvQ2hlY2siLCJ3ZWlnaHRlZFN1bXMiLCJ3ZWlnaHQiLCJjaGVja0NoYXIiLCJFQU4yUmVhZGVyIiwicGFyc2VJbnQiLCJFQU41UmVhZGVyIiwiQ0hFQ0tfRElHSVRfRU5DT0RJTkdTIiwiZXh0ZW5zaW9uQ2hlY2tzdW0iLCJkZXRlcm1pbmVDaGVja0RpZ2l0IiwiRUFOOFJlYWRlciIsIkkyb2Y1UmVhZGVyIiwibm9ybWFsaXplQmFyU3BhY2VXaWR0aCIsIk1BWF9DT1JSRUNUSU9OX0ZBQ1RPUiIsImNvdW50ZXJTdW0iLCJjb2RlU3VtIiwiY29ycmVjdGlvblJhdGlvIiwiY29ycmVjdGlvblJhdGlvSW52ZXJzZSIsIl9kZWNvZGVQYWlyIiwiY291bnRlclBhaXIiLCJjb2RlcyIsIlVQQ0VSZWFkZXIiLCJfZGV0ZXJtaW5lUGFyaXR5IiwibnJTeXN0ZW0iLCJfY29udmVydFRvVVBDQSIsInVwY2EiLCJsYXN0RGlnaXQiLCJVUENSZWFkZXIiLCJjaGFyQXQiLCJzdWJzdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNSQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtREFBMkMsY0FBYzs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQ3BCQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDaENBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDcENBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDbENBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7Ozs7QUM1QkE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FB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ZSI6InF1YWdnYS5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoZmFjdG9yeS50b1N0cmluZygpKS5kZWZhdWx0O1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiUXVhZ2dhXCJdID0gZmFjdG9yeShmYWN0b3J5LnRvU3RyaW5nKCkpLmRlZmF1bHQ7XG5cdGVsc2Vcblx0XHRyb290W1wiUXVhZ2dhXCJdID0gZmFjdG9yeShmYWN0b3J5LnRvU3RyaW5nKCkpLmRlZmF1bHQ7XG59KSh0aGlzLCBmdW5jdGlvbihfX2ZhY3RvcnlTb3VyY2VfXykge1xucmV0dXJuIFxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL215TW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxNjYpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDc1NjBjYzQ5MjcyMzFiMmUzNzg5IiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzT2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuLi9jb21tb24vYXJyYXlfaGVscGVyJztcblxuZnVuY3Rpb24gQmFyY29kZVJlYWRlcihjb25maWcsIHN1cHBsZW1lbnRzKSB7XG4gICAgdGhpcy5fcm93ID0gW107XG4gICAgdGhpcy5jb25maWcgPSBjb25maWcgfHwge307XG4gICAgdGhpcy5zdXBwbGVtZW50cyA9IHN1cHBsZW1lbnRzO1xuICAgIHJldHVybiB0aGlzO1xufVxuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbmV4dFVuc2V0ID0gZnVuY3Rpb24obGluZSwgc3RhcnQpIHtcbiAgICB2YXIgaTtcblxuICAgIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICB9XG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghbGluZVtpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmUubGVuZ3RoO1xufTtcblxuQmFyY29kZVJlYWRlci5wcm90b3R5cGUuX21hdGNoUGF0dGVybiA9IGZ1bmN0aW9uKGNvdW50ZXIsIGNvZGUsIG1heFNpbmdsZUVycm9yKSB7XG4gICAgdmFyIGksXG4gICAgICAgIGVycm9yID0gMCxcbiAgICAgICAgc2luZ2xlRXJyb3IgPSAwLFxuICAgICAgICBzdW0gPSAwLFxuICAgICAgICBtb2R1bG8gPSAwLFxuICAgICAgICBiYXJXaWR0aCxcbiAgICAgICAgY291bnQsXG4gICAgICAgIHNjYWxlZDtcblxuICAgIG1heFNpbmdsZUVycm9yID0gbWF4U2luZ2xlRXJyb3IgfHwgdGhpcy5TSU5HTEVfQ09ERV9FUlJPUiB8fCAxO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGNvdW50ZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc3VtICs9IGNvdW50ZXJbaV07XG4gICAgICAgIG1vZHVsbyArPSBjb2RlW2ldO1xuICAgIH1cbiAgICBpZiAoc3VtIDwgbW9kdWxvKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgIH1cbiAgICBiYXJXaWR0aCA9IHN1bSAvIG1vZHVsbztcbiAgICBtYXhTaW5nbGVFcnJvciAqPSBiYXJXaWR0aDtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvdW50ID0gY291bnRlcltpXTtcbiAgICAgICAgc2NhbGVkID0gY29kZVtpXSAqIGJhcldpZHRoO1xuICAgICAgICBzaW5nbGVFcnJvciA9IE1hdGguYWJzKGNvdW50IC0gc2NhbGVkKSAvIHNjYWxlZDtcbiAgICAgICAgaWYgKHNpbmdsZUVycm9yID4gbWF4U2luZ2xlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yICs9IHNpbmdsZUVycm9yO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3IgLyBtb2R1bG87XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbmV4dFNldCA9IGZ1bmN0aW9uKGxpbmUsIG9mZnNldCkge1xuICAgIHZhciBpO1xuXG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDA7XG4gICAgZm9yIChpID0gb2Zmc2V0OyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAobGluZVtpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmUubGVuZ3RoO1xufTtcblxuQmFyY29kZVJlYWRlci5wcm90b3R5cGUuX2NvcnJlY3RCYXJzID0gZnVuY3Rpb24oY291bnRlciwgY29ycmVjdGlvbiwgaW5kaWNlcykge1xuICAgIHZhciBsZW5ndGggPSBpbmRpY2VzLmxlbmd0aCxcbiAgICAgICAgdG1wID0gMDtcbiAgICB3aGlsZShsZW5ndGgtLSkge1xuICAgICAgICB0bXAgPSBjb3VudGVyW2luZGljZXNbbGVuZ3RoXV0gKiAoMSAtICgoMSAtIGNvcnJlY3Rpb24pIC8gMikpO1xuICAgICAgICBpZiAodG1wID4gMSkge1xuICAgICAgICAgICAgY291bnRlcltpbmRpY2VzW2xlbmd0aF1dID0gdG1wO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hUcmFjZSA9IGZ1bmN0aW9uKGNtcENvdW50ZXIsIGVwc2lsb24pIHtcbiAgICB2YXIgY291bnRlciA9IFtdLFxuICAgICAgICBpLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgb2Zmc2V0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3cpLFxuICAgICAgICBpc1doaXRlID0gIXNlbGYuX3Jvd1tvZmZzZXRdLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yO1xuXG4gICAgaWYgKGNtcENvdW50ZXIpIHtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBjbXBDb3VudGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb3VudGVyLnB1c2goMCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICggaSA9IG9mZnNldDsgaSA8IHNlbGYuX3Jvdy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBzZWxmLl9tYXRjaFBhdHRlcm4oY291bnRlciwgY21wQ291bnRlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIDwgZXBzaWxvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLnN0YXJ0ID0gaSAtIG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lbmQgPSBpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvdW50ZXIgPSBjb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJlc3RNYXRjaDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnRlclBvcysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgICAgICBpc1doaXRlID0gIWlzV2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudGVyLnB1c2goMCk7XG4gICAgICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSsrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICAgICAgY291bnRlci5wdXNoKDApO1xuICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlmIGNtcENvdW50ZXIgd2FzIG5vdCBnaXZlblxuICAgIGJlc3RNYXRjaC5zdGFydCA9IG9mZnNldDtcbiAgICBiZXN0TWF0Y2guZW5kID0gc2VsZi5fcm93Lmxlbmd0aCAtIDE7XG4gICAgYmVzdE1hdGNoLmNvdW50ZXIgPSBjb3VudGVyO1xuICAgIHJldHVybiBiZXN0TWF0Y2g7XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5kZWNvZGVQYXR0ZXJuID0gZnVuY3Rpb24ocGF0dGVybikge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgcmVzdWx0O1xuXG4gICAgc2VsZi5fcm93ID0gcGF0dGVybjtcbiAgICByZXN1bHQgPSBzZWxmLl9kZWNvZGUoKTtcbiAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIHNlbGYuX3Jvdy5yZXZlcnNlKCk7XG4gICAgICAgIHJlc3VsdCA9IHNlbGYuX2RlY29kZSgpO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICByZXN1bHQuZGlyZWN0aW9uID0gQmFyY29kZVJlYWRlci5ESVJFQ1RJT04uUkVWRVJTRTtcbiAgICAgICAgICAgIHJlc3VsdC5zdGFydCA9IHNlbGYuX3Jvdy5sZW5ndGggLSByZXN1bHQuc3RhcnQ7XG4gICAgICAgICAgICByZXN1bHQuZW5kID0gc2VsZi5fcm93Lmxlbmd0aCAtIHJlc3VsdC5lbmQ7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQuZGlyZWN0aW9uID0gQmFyY29kZVJlYWRlci5ESVJFQ1RJT04uRk9SV0FSRDtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXN1bHQuZm9ybWF0ID0gc2VsZi5GT1JNQVQ7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hSYW5nZSA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIHZhbHVlKSB7XG4gICAgdmFyIGk7XG5cbiAgICBzdGFydCA9IHN0YXJ0IDwgMCA/IDAgOiBzdGFydDtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLl9yb3dbaV0gIT09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fZmlsbENvdW50ZXJzID0gZnVuY3Rpb24ob2Zmc2V0LCBlbmQsIGlzV2hpdGUpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvdW50ZXJQb3MgPSAwLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVycyA9IFtdO1xuXG4gICAgaXNXaGl0ZSA9ICh0eXBlb2YgaXNXaGl0ZSAhPT0gJ3VuZGVmaW5lZCcpID8gaXNXaGl0ZSA6IHRydWU7XG4gICAgb2Zmc2V0ID0gKHR5cGVvZiBvZmZzZXQgIT09ICd1bmRlZmluZWQnKSA/IG9mZnNldCA6IHNlbGYuX25leHRVbnNldChzZWxmLl9yb3cpO1xuICAgIGVuZCA9IGVuZCB8fCBzZWxmLl9yb3cubGVuZ3RoO1xuXG4gICAgY291bnRlcnNbY291bnRlclBvc10gPSAwO1xuICAgIGZvciAoaSA9IG9mZnNldDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICBjb3VudGVyc1tjb3VudGVyUG9zXSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY291bnRlclBvcysrO1xuICAgICAgICAgICAgY291bnRlcnNbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb3VudGVycztcbn07XG5cbkJhcmNvZGVSZWFkZXIucHJvdG90eXBlLl90b0NvdW50ZXJzID0gZnVuY3Rpb24oc3RhcnQsIGNvdW50ZXIpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIG51bUNvdW50ZXJzID0gY291bnRlci5sZW5ndGgsXG4gICAgICAgIGVuZCA9IHNlbGYuX3Jvdy5sZW5ndGgsXG4gICAgICAgIGlzV2hpdGUgPSAhc2VsZi5fcm93W3N0YXJ0XSxcbiAgICAgICAgaSxcbiAgICAgICAgY291bnRlclBvcyA9IDA7XG5cbiAgICBBcnJheUhlbHBlci5pbml0KGNvdW50ZXIsIDApO1xuXG4gICAgZm9yICggaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBudW1Db3VudGVycykge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgICAgICBpc1doaXRlID0gIWlzV2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY291bnRlcjtcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgXCJGT1JNQVRcIiwge1xuICAgIHZhbHVlOiAndW5rbm93bicsXG4gICAgd3JpdGVhYmxlOiBmYWxzZVxufSk7XG5cbkJhcmNvZGVSZWFkZXIuRElSRUNUSU9OID0ge1xuICAgIEZPUldBUkQ6IDEsXG4gICAgUkVWRVJTRTogLTFcbn07XG5cbkJhcmNvZGVSZWFkZXIuRXhjZXB0aW9uID0ge1xuICAgIFN0YXJ0Tm90Rm91bmRFeGNlcHRpb246IFwiU3RhcnQtSW5mbyB3YXMgbm90IGZvdW5kIVwiLFxuICAgIENvZGVOb3RGb3VuZEV4Y2VwdGlvbjogXCJDb2RlIGNvdWxkIG5vdCBiZSBmb3VuZCFcIixcbiAgICBQYXR0ZXJuTm90Rm91bmRFeGNlcHRpb246IFwiUGF0dGVybiBjb3VsZCBub3QgYmUgZm91bmQhXCJcbn07XG5cbkJhcmNvZGVSZWFkZXIuQ09ORklHX0tFWVMgPSB7fTtcblxuZXhwb3J0IGRlZmF1bHQgQmFyY29kZVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvYmFyY29kZV9yZWFkZXIuanMiLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9pc0FycmF5LmpzXG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImV4cG9ydCBkZWZhdWx0IHtcbiAgICBpbml0OiBmdW5jdGlvbihhcnIsIHZhbCkge1xuICAgICAgICB2YXIgbCA9IGFyci5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChsLS0pIHtcbiAgICAgICAgICAgIGFycltsXSA9IHZhbDtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBTaHVmZmxlcyB0aGUgY29udGVudCBvZiBhbiBhcnJheVxuICAgICAqIEByZXR1cm4ge0FycmF5fSB0aGUgYXJyYXkgaXRzZWxmIHNodWZmbGVkXG4gICAgICovXG4gICAgc2h1ZmZsZTogZnVuY3Rpb24oYXJyKSB7XG4gICAgICAgIHZhciBpID0gYXJyLmxlbmd0aCAtIDEsIGosIHg7XG4gICAgICAgIGZvciAoaTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpKTtcbiAgICAgICAgICAgIHggPSBhcnJbaV07XG4gICAgICAgICAgICBhcnJbaV0gPSBhcnJbal07XG4gICAgICAgICAgICBhcnJbal0gPSB4O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSxcblxuICAgIHRvUG9pbnRMaXN0OiBmdW5jdGlvbihhcnIpIHtcbiAgICAgICAgdmFyIGksIGosIHJvdyA9IFtdLCByb3dzID0gW107XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICByb3cgPSBbXTtcbiAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgYXJyW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgcm93W2pdID0gYXJyW2ldW2pdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93c1tpXSA9IFwiW1wiICsgcm93LmpvaW4oXCIsXCIpICsgXCJdXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwiW1wiICsgcm93cy5qb2luKFwiLFxcclxcblwiKSArIFwiXVwiO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRoZSBlbGVtZW50cyB3aGljaCdzIHNjb3JlIGlzIGJpZ2dlciB0aGFuIHRoZSB0aHJlc2hvbGRcbiAgICAgKiBAcmV0dXJuIHtBcnJheX0gdGhlIHJlZHVjZWQgYXJyYXlcbiAgICAgKi9cbiAgICB0aHJlc2hvbGQ6IGZ1bmN0aW9uKGFyciwgdGhyZXNob2xkLCBzY29yZUZ1bmMpIHtcbiAgICAgICAgdmFyIGksIHF1ZXVlID0gW107XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoc2NvcmVGdW5jLmFwcGx5KGFyciwgW2FycltpXV0pID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIHF1ZXVlLnB1c2goYXJyW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVldWU7XG4gICAgfSxcblxuICAgIG1heEluZGV4OiBmdW5jdGlvbihhcnIpIHtcbiAgICAgICAgdmFyIGksIG1heCA9IDA7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXJyW2ldID4gYXJyW21heF0pIHtcbiAgICAgICAgICAgICAgICBtYXggPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfSxcblxuICAgIG1heDogZnVuY3Rpb24oYXJyKSB7XG4gICAgICAgIHZhciBpLCBtYXggPSAwO1xuICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGFycltpXSA+IG1heCkge1xuICAgICAgICAgICAgICAgIG1heCA9IGFycltpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgIH0sXG5cbiAgICBzdW06IGZ1bmN0aW9uKGFycikge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyLmxlbmd0aCxcbiAgICAgICAgICAgIHN1bSA9IDA7XG5cbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICBzdW0gKz0gYXJyW2xlbmd0aF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9hcnJheV9oZWxwZXIuanMiLCJpbXBvcnQgQmFyY29kZVJlYWRlciBmcm9tICcuL2JhcmNvZGVfcmVhZGVyJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJ2xvZGFzaCc7XG5cbmZ1bmN0aW9uIEVBTlJlYWRlcihvcHRzLCBzdXBwbGVtZW50cykge1xuICAgIG9wdHMgPSBtZXJnZShnZXREZWZhdWxDb25maWcoKSwgb3B0cyk7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMsIG9wdHMsIHN1cHBsZW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsQ29uZmlnKCkge1xuICAgIHZhciBjb25maWcgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKEVBTlJlYWRlci5DT05GSUdfS0VZUykuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgY29uZmlnW2tleV0gPSBFQU5SZWFkZXIuQ09ORklHX0tFWVNba2V5XS5kZWZhdWx0O1xuICAgIH0pO1xuICAgIHJldHVybiBjb25maWc7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIENPREVfTF9TVEFSVDoge3ZhbHVlOiAwfSxcbiAgICBDT0RFX0dfU1RBUlQ6IHt2YWx1ZTogMTB9LFxuICAgIFNUQVJUX1BBVFRFUk46IHt2YWx1ZTogWzEsIDEsIDFdfSxcbiAgICBTVE9QX1BBVFRFUk46IHt2YWx1ZTogWzEsIDEsIDFdfSxcbiAgICBNSURETEVfUEFUVEVSTjoge3ZhbHVlOiBbMSwgMSwgMSwgMSwgMV19LFxuICAgIEVYVEVOU0lPTl9TVEFSVF9QQVRURVJOOiB7dmFsdWU6IFsxLCAxLCAyXX0sXG4gICAgQ09ERV9QQVRURVJOOiB7dmFsdWU6IFtcbiAgICAgICAgWzMsIDIsIDEsIDFdLFxuICAgICAgICBbMiwgMiwgMiwgMV0sXG4gICAgICAgIFsyLCAxLCAyLCAyXSxcbiAgICAgICAgWzEsIDQsIDEsIDFdLFxuICAgICAgICBbMSwgMSwgMywgMl0sXG4gICAgICAgIFsxLCAyLCAzLCAxXSxcbiAgICAgICAgWzEsIDEsIDEsIDRdLFxuICAgICAgICBbMSwgMywgMSwgMl0sXG4gICAgICAgIFsxLCAyLCAxLCAzXSxcbiAgICAgICAgWzMsIDEsIDEsIDJdLFxuICAgICAgICBbMSwgMSwgMiwgM10sXG4gICAgICAgIFsxLCAyLCAyLCAyXSxcbiAgICAgICAgWzIsIDIsIDEsIDJdLFxuICAgICAgICBbMSwgMSwgNCwgMV0sXG4gICAgICAgIFsyLCAzLCAxLCAxXSxcbiAgICAgICAgWzEsIDMsIDIsIDFdLFxuICAgICAgICBbNCwgMSwgMSwgMV0sXG4gICAgICAgIFsyLCAxLCAzLCAxXSxcbiAgICAgICAgWzMsIDEsIDIsIDFdLFxuICAgICAgICBbMiwgMSwgMSwgM11cbiAgICBdfSxcbiAgICBDT0RFX0ZSRVFVRU5DWToge3ZhbHVlOiBbMCwgMTEsIDEzLCAxNCwgMTksIDI1LCAyOCwgMjEsIDIyLCAyNl19LFxuICAgIFNJTkdMRV9DT0RFX0VSUk9SOiB7dmFsdWU6IDAuNzB9LFxuICAgIEFWR19DT0RFX0VSUk9SOiB7dmFsdWU6IDAuNDh9LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcImVhbl8xM1wiLCB3cml0ZWFibGU6IGZhbHNlfVxufTtcblxuRUFOUmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQmFyY29kZVJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuRUFOUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEVBTlJlYWRlcjtcblxuRUFOUmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlQ29kZSA9IGZ1bmN0aW9uKHN0YXJ0LCBjb2RlcmFuZ2UpIHtcbiAgICB2YXIgY291bnRlciA9IFswLCAwLCAwLCAwXSxcbiAgICAgICAgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIG9mZnNldCA9IHN0YXJ0LFxuICAgICAgICBpc1doaXRlID0gIXNlbGYuX3Jvd1tvZmZzZXRdLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogc3RhcnRcbiAgICAgICAgfSxcbiAgICAgICAgY29kZSxcbiAgICAgICAgZXJyb3I7XG5cbiAgICBpZiAoIWNvZGVyYW5nZSkge1xuICAgICAgICBjb2RlcmFuZ2UgPSBzZWxmLkNPREVfUEFUVEVSTi5sZW5ndGg7XG4gICAgfVxuXG4gICAgZm9yICggaSA9IG9mZnNldDsgaSA8IHNlbGYuX3Jvdy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc2VsZi5fcm93W2ldIF4gaXNXaGl0ZSkge1xuICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJQb3MgPT09IGNvdW50ZXIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29kZSA9IDA7IGNvZGUgPCBjb2RlcmFuZ2U7IGNvZGUrKykge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVuZCA9IGk7XG4gICAgICAgICAgICAgICAgaWYgKGJlc3RNYXRjaC5lcnJvciA+IHNlbGYuQVZHX0NPREVfRVJST1IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBiZXN0TWF0Y2g7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuRUFOUmVhZGVyLnByb3RvdHlwZS5fZmluZFBhdHRlcm4gPSBmdW5jdGlvbihwYXR0ZXJuLCBvZmZzZXQsIGlzV2hpdGUsIHRyeUhhcmRlciwgZXBzaWxvbikge1xuICAgIHZhciBjb3VudGVyID0gW10sXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yLFxuICAgICAgICBqLFxuICAgICAgICBzdW07XG5cbiAgICBpZiAoIW9mZnNldCkge1xuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3Jvdyk7XG4gICAgfVxuXG4gICAgaWYgKGlzV2hpdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpc1doaXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRyeUhhcmRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRyeUhhcmRlciA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCBlcHNpbG9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZXBzaWxvbiA9IHNlbGYuQVZHX0NPREVfRVJST1I7XG4gICAgfVxuXG4gICAgZm9yICggaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvdW50ZXJbaV0gPSAwO1xuICAgIH1cblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgY291bnRlci5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnRlcltqXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXJyb3IgPSBzZWxmLl9tYXRjaFBhdHRlcm4oY291bnRlciwgcGF0dGVybik7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgPCBlcHNpbG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2guc3RhcnQgPSBpIC0gc3VtO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2guZW5kID0gaTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJlc3RNYXRjaDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRyeUhhcmRlcikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoIC0gMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyW2pdID0gY291bnRlcltqICsgMl07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY291bnRlcltjb3VudGVyLmxlbmd0aCAtIDJdID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY291bnRlcltjb3VudGVyLmxlbmd0aCAtIDFdID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSA9IDE7XG4gICAgICAgICAgICBpc1doaXRlID0gIWlzV2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9maW5kU3RhcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQsXG4gICAgICAgIG9mZnNldCA9IHNlbGYuX25leHRTZXQoc2VsZi5fcm93KSxcbiAgICAgICAgc3RhcnRJbmZvO1xuXG4gICAgd2hpbGUgKCFzdGFydEluZm8pIHtcbiAgICAgICAgc3RhcnRJbmZvID0gc2VsZi5fZmluZFBhdHRlcm4oc2VsZi5TVEFSVF9QQVRURVJOLCBvZmZzZXQpO1xuICAgICAgICBpZiAoIXN0YXJ0SW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGVhZGluZ1doaXRlc3BhY2VTdGFydCA9IHN0YXJ0SW5mby5zdGFydCAtIChzdGFydEluZm8uZW5kIC0gc3RhcnRJbmZvLnN0YXJ0KTtcbiAgICAgICAgaWYgKGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQgPj0gMCkge1xuICAgICAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UobGVhZGluZ1doaXRlc3BhY2VTdGFydCwgc3RhcnRJbmZvLnN0YXJ0LCAwKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydEluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0ID0gc3RhcnRJbmZvLmVuZDtcbiAgICAgICAgc3RhcnRJbmZvID0gbnVsbDtcbiAgICB9XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UgPSBmdW5jdGlvbihlbmRJbmZvKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQ7XG5cbiAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQgPSBlbmRJbmZvLmVuZCArIChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpO1xuICAgIGlmICh0cmFpbGluZ1doaXRlc3BhY2VFbmQgPCBzZWxmLl9yb3cubGVuZ3RoKSB7XG4gICAgICAgIGlmIChzZWxmLl9tYXRjaFJhbmdlKGVuZEluZm8uZW5kLCB0cmFpbGluZ1doaXRlc3BhY2VFbmQsIDApKSB7XG4gICAgICAgICAgICByZXR1cm4gZW5kSW5mbztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkVBTlJlYWRlci5wcm90b3R5cGUuX2ZpbmRFbmQgPSBmdW5jdGlvbihvZmZzZXQsIGlzV2hpdGUpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGVuZEluZm8gPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLlNUT1BfUEFUVEVSTiwgb2Zmc2V0LCBpc1doaXRlLCBmYWxzZSk7XG5cbiAgICByZXR1cm4gZW5kSW5mbyAhPT0gbnVsbCA/IHNlbGYuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZShlbmRJbmZvKSA6IG51bGw7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9jYWxjdWxhdGVGaXJzdERpZ2l0ID0gZnVuY3Rpb24oY29kZUZyZXF1ZW5jeSkge1xuICAgIHZhciBpLFxuICAgICAgICBzZWxmID0gdGhpcztcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgc2VsZi5DT0RFX0ZSRVFVRU5DWS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoY29kZUZyZXF1ZW5jeSA9PT0gc2VsZi5DT0RFX0ZSRVFVRU5DWVtpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvZGVGcmVxdWVuY3kgPSAweDAsXG4gICAgICAgIGZpcnN0RGlnaXQ7XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IDY7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb2RlLmVuZCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvZGUuY29kZSA+PSBzZWxmLkNPREVfR19TVEFSVCkge1xuICAgICAgICAgICAgY29kZS5jb2RlID0gY29kZS5jb2RlIC0gc2VsZi5DT0RFX0dfU1RBUlQ7XG4gICAgICAgICAgICBjb2RlRnJlcXVlbmN5IHw9IDEgPDwgKDUgLSBpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvZGVGcmVxdWVuY3kgfD0gMCA8PCAoNSAtIGkpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgICAgIGRlY29kZWRDb2Rlcy5wdXNoKGNvZGUpO1xuICAgIH1cblxuICAgIGZpcnN0RGlnaXQgPSBzZWxmLl9jYWxjdWxhdGVGaXJzdERpZ2l0KGNvZGVGcmVxdWVuY3kpO1xuICAgIGlmIChmaXJzdERpZ2l0ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXN1bHQudW5zaGlmdChmaXJzdERpZ2l0KTtcblxuICAgIGNvZGUgPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLk1JRERMRV9QQVRURVJOLCBjb2RlLmVuZCwgdHJ1ZSwgZmFsc2UpO1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgNjsgaSsrKSB7XG4gICAgICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVDb2RlKGNvZGUuZW5kLCBzZWxmLkNPREVfR19TVEFSVCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvZGU7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhcnRJbmZvLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICByZXN1bHRJbmZvID0ge307XG5cbiAgICBzdGFydEluZm8gPSBzZWxmLl9maW5kU3RhcnQoKTtcbiAgICBpZiAoIXN0YXJ0SW5mbykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29kZSA9IHtcbiAgICAgICAgY29kZTogc3RhcnRJbmZvLmNvZGUsXG4gICAgICAgIHN0YXJ0OiBzdGFydEluZm8uc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnRJbmZvLmVuZFxuICAgIH07XG4gICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgY29kZSA9IHNlbGYuX2RlY29kZVBheWxvYWQoY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpO1xuICAgIGlmICghY29kZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29kZSA9IHNlbGYuX2ZpbmRFbmQoY29kZS5lbmQsIGZhbHNlKTtcbiAgICBpZiAoIWNvZGUpe1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgIC8vIENoZWNrc3VtXG4gICAgaWYgKCFzZWxmLl9jaGVja3N1bShyZXN1bHQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN1cHBsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IGV4dCA9IHRoaXMuX2RlY29kZUV4dGVuc2lvbnMoY29kZS5lbmQpO1xuICAgICAgICBpZiAoIWV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxhc3RDb2RlID0gZXh0LmRlY29kZWRDb2Rlc1tleHQuZGVjb2RlZENvZGVzLmxlbmd0aC0xXSxcbiAgICAgICAgICAgIGVuZEluZm8gPSB7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IGxhc3RDb2RlLnN0YXJ0ICsgKCgobGFzdENvZGUuZW5kIC0gbGFzdENvZGUuc3RhcnQpIC8gMikgfCAwKSxcbiAgICAgICAgICAgICAgICBlbmQ6IGxhc3RDb2RlLmVuZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgaWYoIXNlbGYuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZShlbmRJbmZvKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0SW5mbyA9IHtcbiAgICAgICAgICAgIHN1cHBsZW1lbnQ6IGV4dCxcbiAgICAgICAgICAgIGNvZGU6IHJlc3VsdC5qb2luKFwiXCIpICsgZXh0LmNvZGVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IHJlc3VsdC5qb2luKFwiXCIpLFxuICAgICAgICBzdGFydDogc3RhcnRJbmZvLnN0YXJ0LFxuICAgICAgICBlbmQ6IGNvZGUuZW5kLFxuICAgICAgICBjb2Rlc2V0OiBcIlwiLFxuICAgICAgICBzdGFydEluZm86IHN0YXJ0SW5mbyxcbiAgICAgICAgZGVjb2RlZENvZGVzOiBkZWNvZGVkQ29kZXMsXG4gICAgICAgIC4uLnJlc3VsdEluZm9cbiAgICB9O1xufTtcblxuRUFOUmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlRXh0ZW5zaW9ucyA9IGZ1bmN0aW9uKG9mZnNldCkge1xuICAgIHZhciBpLFxuICAgICAgICBzdGFydCA9IHRoaXMuX25leHRTZXQodGhpcy5fcm93LCBvZmZzZXQpLFxuICAgICAgICBzdGFydEluZm8gPSB0aGlzLl9maW5kUGF0dGVybih0aGlzLkVYVEVOU0lPTl9TVEFSVF9QQVRURVJOLCBzdGFydCwgZmFsc2UsIGZhbHNlKSxcbiAgICAgICAgcmVzdWx0O1xuXG4gICAgaWYgKHN0YXJ0SW5mbyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5zdXBwbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICByZXN1bHQgPSB0aGlzLnN1cHBsZW1lbnRzW2ldLmRlY29kZSh0aGlzLl9yb3csIHN0YXJ0SW5mby5lbmQpO1xuICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvZGU6IHJlc3VsdC5jb2RlLFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0SW5mbyxcbiAgICAgICAgICAgICAgICBlbmQ6IHJlc3VsdC5lbmQsXG4gICAgICAgICAgICAgICAgY29kZXNldDogXCJcIixcbiAgICAgICAgICAgICAgICBkZWNvZGVkQ29kZXM6IHJlc3VsdC5kZWNvZGVkQ29kZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkVBTlJlYWRlci5wcm90b3R5cGUuX2NoZWNrc3VtID0gZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgdmFyIHN1bSA9IDAsIGk7XG5cbiAgICBmb3IgKCBpID0gcmVzdWx0Lmxlbmd0aCAtIDI7IGkgPj0gMDsgaSAtPSAyKSB7XG4gICAgICAgIHN1bSArPSByZXN1bHRbaV07XG4gICAgfVxuICAgIHN1bSAqPSAzO1xuICAgIGZvciAoIGkgPSByZXN1bHQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICAgICAgc3VtICs9IHJlc3VsdFtpXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bSAlIDEwID09PSAwO1xufTtcblxuRUFOUmVhZGVyLkNPTkZJR19LRVlTID0ge1xuICAgIHN1cHBsZW1lbnRzOiB7XG4gICAgICAgICd0eXBlJzogJ2FycmF5T2Yoc3RyaW5nKScsXG4gICAgICAgICdkZWZhdWx0JzogW10sXG4gICAgICAgICdkZXNjcmlwdGlvbic6ICdBbGxvd2VkIGV4dGVuc2lvbnMgdG8gYmUgZGVjb2RlZCAoMiBhbmQvb3IgNSknXG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgKEVBTlJlYWRlcik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2Vhbl9yZWFkZXIuanMiLCJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvb3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19yb290LmpzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0TGlrZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gY2xvbmVcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHZlYzIgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3JcbiAqXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIGNsb25lXG4gKiBAcmV0dXJucyB7dmVjMn0gYSBuZXcgMkQgdmVjdG9yXG4gKi9cbmZ1bmN0aW9uIGNsb25lKGEpIHtcbiAgICB2YXIgb3V0ID0gbmV3IEZsb2F0MzJBcnJheSgyKVxuICAgIG91dFswXSA9IGFbMF1cbiAgICBvdXRbMV0gPSBhWzFdXG4gICAgcmV0dXJuIG91dFxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9nbC12ZWMyL2Nsb25lLmpzXG4vLyBtb2R1bGUgaWQgPSA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBnZXRSYXdUYWcgPSByZXF1aXJlKCcuL19nZXRSYXdUYWcnKSxcbiAgICBvYmplY3RUb1N0cmluZyA9IHJlcXVpcmUoJy4vX29iamVjdFRvU3RyaW5nJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VHZXRUYWc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlR2V0VGFnLmpzXG4vLyBtb2R1bGUgaWQgPSA4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImV4cG9ydCBkZWZhdWx0IHtcbiAgICBkcmF3UmVjdDogZnVuY3Rpb24ocG9zLCBzaXplLCBjdHgsIHN0eWxlKXtcbiAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gc3R5bGUuY29sb3I7XG4gICAgICAgIGN0eC5maWxsU3R5bGUgPSBzdHlsZS5jb2xvcjtcbiAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4LnN0cm9rZVJlY3QocG9zLngsIHBvcy55LCBzaXplLngsIHNpemUueSk7XG4gICAgfSxcbiAgICBkcmF3UGF0aDogZnVuY3Rpb24ocGF0aCwgZGVmLCBjdHgsIHN0eWxlKSB7XG4gICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IHN0eWxlLmNvbG9yO1xuICAgICAgICBjdHguZmlsbFN0eWxlID0gc3R5bGUuY29sb3I7XG4gICAgICAgIGN0eC5saW5lV2lkdGggPSBzdHlsZS5saW5lV2lkdGg7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4Lm1vdmVUbyhwYXRoWzBdW2RlZi54XSwgcGF0aFswXVtkZWYueV0pO1xuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHBhdGgubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGN0eC5saW5lVG8ocGF0aFtqXVtkZWYueF0sIHBhdGhbal1bZGVmLnldKTtcbiAgICAgICAgfVxuICAgICAgICBjdHguY2xvc2VQYXRoKCk7XG4gICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICB9LFxuICAgIGRyYXdJbWFnZTogZnVuY3Rpb24oaW1hZ2VEYXRhLCBzaXplLCBjdHgpIHtcbiAgICAgICAgdmFyIGNhbnZhc0RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHNpemUueCwgc2l6ZS55KSxcbiAgICAgICAgICAgIGRhdGEgPSBjYW52YXNEYXRhLmRhdGEsXG4gICAgICAgICAgICBpbWFnZURhdGFQb3MgPSBpbWFnZURhdGEubGVuZ3RoLFxuICAgICAgICAgICAgY2FudmFzRGF0YVBvcyA9IGRhdGEubGVuZ3RoLFxuICAgICAgICAgICAgdmFsdWU7XG5cbiAgICAgICAgaWYgKGNhbnZhc0RhdGFQb3MgLyBpbWFnZURhdGFQb3MgIT09IDQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaW1hZ2VEYXRhUG9zLS0pe1xuICAgICAgICAgICAgdmFsdWUgPSBpbWFnZURhdGFbaW1hZ2VEYXRhUG9zXTtcbiAgICAgICAgICAgIGRhdGFbLS1jYW52YXNEYXRhUG9zXSA9IDI1NTtcbiAgICAgICAgICAgIGRhdGFbLS1jYW52YXNEYXRhUG9zXSA9IHZhbHVlO1xuICAgICAgICAgICAgZGF0YVstLWNhbnZhc0RhdGFQb3NdID0gdmFsdWU7XG4gICAgICAgICAgICBkYXRhWy0tY2FudmFzRGF0YVBvc10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjdHgucHV0SW1hZ2VEYXRhKGNhbnZhc0RhdGEsIDAsIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9pbWFnZV9kZWJ1Zy5qcyIsInZhciBsaXN0Q2FjaGVDbGVhciA9IHJlcXVpcmUoJy4vX2xpc3RDYWNoZUNsZWFyJyksXG4gICAgbGlzdENhY2hlRGVsZXRlID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlRGVsZXRlJyksXG4gICAgbGlzdENhY2hlR2V0ID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlR2V0JyksXG4gICAgbGlzdENhY2hlSGFzID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlSGFzJyksXG4gICAgbGlzdENhY2hlU2V0ID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG5MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG5MaXN0Q2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IGxpc3RDYWNoZURlbGV0ZTtcbkxpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG5MaXN0Q2FjaGUucHJvdG90eXBlLnNldCA9IGxpc3RDYWNoZVNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBMaXN0Q2FjaGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19MaXN0Q2FjaGUuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19TeW1ib2wuanNcbi8vIG1vZHVsZSBpZCA9IDExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgYGtleWAgaXMgZm91bmQgaW4gYGFycmF5YCBvZiBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcbiAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NvY0luZGV4T2Y7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19hc3NvY0luZGV4T2YuanNcbi8vIG1vZHVsZSBpZCA9IDEyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuL19pc0tleScpLFxuICAgIHN0cmluZ1RvUGF0aCA9IHJlcXVpcmUoJy4vX3N0cmluZ1RvUGF0aCcpLFxuICAgIHRvU3RyaW5nID0gcmVxdWlyZSgnLi90b1N0cmluZycpO1xuXG4vKipcbiAqIENhc3RzIGB2YWx1ZWAgdG8gYSBwYXRoIGFycmF5IGlmIGl0J3Mgbm90IG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNhc3QgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gY2FzdFBhdGgodmFsdWUsIG9iamVjdCkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGlzS2V5KHZhbHVlLCBvYmplY3QpID8gW3ZhbHVlXSA6IHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhc3RQYXRoO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY2FzdFBhdGguanNcbi8vIG1vZHVsZSBpZCA9IDEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc0tleWFibGUgPSByZXF1aXJlKCcuL19pc0tleWFibGUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBkYXRhIGZvciBgbWFwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUgcmVmZXJlbmNlIGtleS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXAgZGF0YS5cbiAqL1xuZnVuY3Rpb24gZ2V0TWFwRGF0YShtYXAsIGtleSkge1xuICB2YXIgZGF0YSA9IG1hcC5fX2RhdGFfXztcbiAgcmV0dXJuIGlzS2V5YWJsZShrZXkpXG4gICAgPyBkYXRhW3R5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyAnc3RyaW5nJyA6ICdoYXNoJ11cbiAgICA6IGRhdGEubWFwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldE1hcERhdGE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19nZXRNYXBEYXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAxNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZW9mIHZhbHVlID09ICdudW1iZXInIHx8IHJlSXNVaW50LnRlc3QodmFsdWUpKSAmJlxuICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0luZGV4O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faXNJbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5hdGl2ZUNyZWF0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX25hdGl2ZUNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2VxLmpzXG4vLyBtb2R1bGUgaWQgPSAxN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9fYmFzZUlzQXJndW1lbnRzJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcmd1bWVudHM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzQXJndW1lbnRzLmpzXG4vLyBtb2R1bGUgaWQgPSAxOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJpbXBvcnQgQ2x1c3RlcjIgZnJvbSAnLi9jbHVzdGVyJztcbmltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuL2FycmF5X2hlbHBlcic7XG5jb25zdCB2ZWMyID0ge1xuICAgIGNsb25lOiByZXF1aXJlKCdnbC12ZWMyL2Nsb25lJyksXG59O1xuY29uc3QgdmVjMyA9IHtcbiAgICBjbG9uZTogcmVxdWlyZSgnZ2wtdmVjMy9jbG9uZScpLFxufTtcblxuLyoqXG4gKiBAcGFyYW0geCB4LWNvb3JkaW5hdGVcbiAqIEBwYXJhbSB5IHktY29vcmRpbmF0ZVxuICogQHJldHVybiBJbWFnZVJlZmVyZW5jZSB7eCx5fSBDb29yZGluYXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZVJlZih4LCB5KSB7XG4gICAgdmFyIHRoYXQgPSB7XG4gICAgICAgIHg6IHgsXG4gICAgICAgIHk6IHksXG4gICAgICAgIHRvVmVjMjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdmVjMi5jbG9uZShbdGhpcy54LCB0aGlzLnldKTtcbiAgICAgICAgfSxcbiAgICAgICAgdG9WZWMzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB2ZWMzLmNsb25lKFt0aGlzLngsIHRoaXMueSwgMV0pO1xuICAgICAgICB9LFxuICAgICAgICByb3VuZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLnggPSB0aGlzLnggPiAwLjAgPyBNYXRoLmZsb29yKHRoaXMueCArIDAuNSkgOiBNYXRoLmZsb29yKHRoaXMueCAtIDAuNSk7XG4gICAgICAgICAgICB0aGlzLnkgPSB0aGlzLnkgPiAwLjAgPyBNYXRoLmZsb29yKHRoaXMueSArIDAuNSkgOiBNYXRoLmZsb29yKHRoaXMueSAtIDAuNSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHRoYXQ7XG59O1xuXG4vKipcbiAqIENvbXB1dGVzIGFuIGludGVncmFsIGltYWdlIG9mIGEgZ2l2ZW4gZ3JheXNjYWxlIGltYWdlLlxuICogQHBhcmFtIGltYWdlRGF0YUNvbnRhaW5lciB7SW1hZ2VEYXRhQ29udGFpbmVyfSB0aGUgaW1hZ2UgdG8gYmUgaW50ZWdyYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUludGVncmFsSW1hZ2UyKGltYWdlV3JhcHBlciwgaW50ZWdyYWxXcmFwcGVyKSB7XG4gICAgdmFyIGltYWdlRGF0YSA9IGltYWdlV3JhcHBlci5kYXRhO1xuICAgIHZhciB3aWR0aCA9IGltYWdlV3JhcHBlci5zaXplLng7XG4gICAgdmFyIGhlaWdodCA9IGltYWdlV3JhcHBlci5zaXplLnk7XG4gICAgdmFyIGludGVncmFsSW1hZ2VEYXRhID0gaW50ZWdyYWxXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHN1bSA9IDAsIHBvc0EgPSAwLCBwb3NCID0gMCwgcG9zQyA9IDAsIHBvc0QgPSAwLCB4LCB5O1xuXG4gICAgLy8gc3VtIHVwIGZpcnN0IGNvbHVtblxuICAgIHBvc0IgPSB3aWR0aDtcbiAgICBzdW0gPSAwO1xuICAgIGZvciAoIHkgPSAxOyB5IDwgaGVpZ2h0OyB5KyspIHtcbiAgICAgICAgc3VtICs9IGltYWdlRGF0YVtwb3NBXTtcbiAgICAgICAgaW50ZWdyYWxJbWFnZURhdGFbcG9zQl0gKz0gc3VtO1xuICAgICAgICBwb3NBICs9IHdpZHRoO1xuICAgICAgICBwb3NCICs9IHdpZHRoO1xuICAgIH1cblxuICAgIHBvc0EgPSAwO1xuICAgIHBvc0IgPSAxO1xuICAgIHN1bSA9IDA7XG4gICAgZm9yICggeCA9IDE7IHggPCB3aWR0aDsgeCsrKSB7XG4gICAgICAgIHN1bSArPSBpbWFnZURhdGFbcG9zQV07XG4gICAgICAgIGludGVncmFsSW1hZ2VEYXRhW3Bvc0JdICs9IHN1bTtcbiAgICAgICAgcG9zQSsrO1xuICAgICAgICBwb3NCKys7XG4gICAgfVxuXG4gICAgZm9yICggeSA9IDE7IHkgPCBoZWlnaHQ7IHkrKykge1xuICAgICAgICBwb3NBID0geSAqIHdpZHRoICsgMTtcbiAgICAgICAgcG9zQiA9ICh5IC0gMSkgKiB3aWR0aCArIDE7XG4gICAgICAgIHBvc0MgPSB5ICogd2lkdGg7XG4gICAgICAgIHBvc0QgPSAoeSAtIDEpICogd2lkdGg7XG4gICAgICAgIGZvciAoIHggPSAxOyB4IDwgd2lkdGg7IHgrKykge1xuICAgICAgICAgICAgaW50ZWdyYWxJbWFnZURhdGFbcG9zQV0gKz1cbiAgICAgICAgICAgICAgICBpbWFnZURhdGFbcG9zQV0gKyBpbnRlZ3JhbEltYWdlRGF0YVtwb3NCXSArIGludGVncmFsSW1hZ2VEYXRhW3Bvc0NdIC0gaW50ZWdyYWxJbWFnZURhdGFbcG9zRF07XG4gICAgICAgICAgICBwb3NBKys7XG4gICAgICAgICAgICBwb3NCKys7XG4gICAgICAgICAgICBwb3NDKys7XG4gICAgICAgICAgICBwb3NEKys7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUludGVncmFsSW1hZ2UoaW1hZ2VXcmFwcGVyLCBpbnRlZ3JhbFdyYXBwZXIpIHtcbiAgICB2YXIgaW1hZ2VEYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHdpZHRoID0gaW1hZ2VXcmFwcGVyLnNpemUueDtcbiAgICB2YXIgaGVpZ2h0ID0gaW1hZ2VXcmFwcGVyLnNpemUueTtcbiAgICB2YXIgaW50ZWdyYWxJbWFnZURhdGEgPSBpbnRlZ3JhbFdyYXBwZXIuZGF0YTtcbiAgICB2YXIgc3VtID0gMDtcblxuICAgIC8vIHN1bSB1cCBmaXJzdCByb3dcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpZHRoOyBpKyspIHtcbiAgICAgICAgc3VtICs9IGltYWdlRGF0YVtpXTtcbiAgICAgICAgaW50ZWdyYWxJbWFnZURhdGFbaV0gPSBzdW07XG4gICAgfVxuXG4gICAgZm9yICh2YXIgdiA9IDE7IHYgPCBoZWlnaHQ7IHYrKykge1xuICAgICAgICBzdW0gPSAwO1xuICAgICAgICBmb3IgKHZhciB1ID0gMDsgdSA8IHdpZHRoOyB1KyspIHtcbiAgICAgICAgICAgIHN1bSArPSBpbWFnZURhdGFbdiAqIHdpZHRoICsgdV07XG4gICAgICAgICAgICBpbnRlZ3JhbEltYWdlRGF0YVsoKHYpICogd2lkdGgpICsgdV0gPSBzdW0gKyBpbnRlZ3JhbEltYWdlRGF0YVsodiAtIDEpICogd2lkdGggKyB1XTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJlc2hvbGRJbWFnZShpbWFnZVdyYXBwZXIsIHRocmVzaG9sZCwgdGFyZ2V0V3JhcHBlcikge1xuICAgIGlmICghdGFyZ2V0V3JhcHBlcikge1xuICAgICAgICB0YXJnZXRXcmFwcGVyID0gaW1hZ2VXcmFwcGVyO1xuICAgIH1cbiAgICB2YXIgaW1hZ2VEYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGEsIGxlbmd0aCA9IGltYWdlRGF0YS5sZW5ndGgsIHRhcmdldERhdGEgPSB0YXJnZXRXcmFwcGVyLmRhdGE7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdGFyZ2V0RGF0YVtsZW5ndGhdID0gaW1hZ2VEYXRhW2xlbmd0aF0gPCB0aHJlc2hvbGQgPyAxIDogMDtcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUhpc3RvZ3JhbShpbWFnZVdyYXBwZXIsIGJpdHNQZXJQaXhlbCkge1xuICAgIGlmICghYml0c1BlclBpeGVsKSB7XG4gICAgICAgIGJpdHNQZXJQaXhlbCA9IDg7XG4gICAgfVxuICAgIHZhciBpbWFnZURhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgbGVuZ3RoID0gaW1hZ2VEYXRhLmxlbmd0aCxcbiAgICAgICAgYml0U2hpZnQgPSA4IC0gYml0c1BlclBpeGVsLFxuICAgICAgICBidWNrZXRDbnQgPSAxIDw8IGJpdHNQZXJQaXhlbCxcbiAgICAgICAgaGlzdCA9IG5ldyBJbnQzMkFycmF5KGJ1Y2tldENudCk7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgaGlzdFtpbWFnZURhdGFbbGVuZ3RoXSA+PiBiaXRTaGlmdF0rKztcbiAgICB9XG4gICAgcmV0dXJuIGhpc3Q7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2hhcnBlbkxpbmUobGluZSkge1xuICAgIHZhciBpLFxuICAgICAgICBsZW5ndGggPSBsaW5lLmxlbmd0aCxcbiAgICAgICAgbGVmdCA9IGxpbmVbMF0sXG4gICAgICAgIGNlbnRlciA9IGxpbmVbMV0sXG4gICAgICAgIHJpZ2h0O1xuXG4gICAgZm9yIChpID0gMTsgaSA8IGxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICByaWdodCA9IGxpbmVbaSArIDFdO1xuICAgICAgICAvLyAgLTEgNCAtMSBrZXJuZWxcbiAgICAgICAgbGluZVtpIC0gMV0gPSAoKChjZW50ZXIgKiAyKSAtIGxlZnQgLSByaWdodCkpICYgMjU1O1xuICAgICAgICBsZWZ0ID0gY2VudGVyO1xuICAgICAgICBjZW50ZXIgPSByaWdodDtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZXJtaW5lT3RzdVRocmVzaG9sZChpbWFnZVdyYXBwZXIsIGJpdHNQZXJQaXhlbCkge1xuICAgIGlmICghYml0c1BlclBpeGVsKSB7XG4gICAgICAgIGJpdHNQZXJQaXhlbCA9IDg7XG4gICAgfVxuICAgIHZhciBoaXN0LFxuICAgICAgICB0aHJlc2hvbGQsXG4gICAgICAgIGJpdFNoaWZ0ID0gOCAtIGJpdHNQZXJQaXhlbDtcblxuICAgIGZ1bmN0aW9uIHB4KGluaXQsIGVuZCkge1xuICAgICAgICB2YXIgc3VtID0gMCwgaTtcbiAgICAgICAgZm9yICggaSA9IGluaXQ7IGkgPD0gZW5kOyBpKyspIHtcbiAgICAgICAgICAgIHN1bSArPSBoaXN0W2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdW07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbXgoaW5pdCwgZW5kKSB7XG4gICAgICAgIHZhciBpLCBzdW0gPSAwO1xuXG4gICAgICAgIGZvciAoIGkgPSBpbml0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICBzdW0gKz0gaSAqIGhpc3RbaV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VtO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRldGVybWluZVRocmVzaG9sZCgpIHtcbiAgICAgICAgdmFyIHZldCA9IFswXSwgcDEsIHAyLCBwMTIsIGssIG0xLCBtMiwgbTEyLFxuICAgICAgICAgICAgbWF4ID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7XG5cbiAgICAgICAgaGlzdCA9IGNvbXB1dGVIaXN0b2dyYW0oaW1hZ2VXcmFwcGVyLCBiaXRzUGVyUGl4ZWwpO1xuICAgICAgICBmb3IgKCBrID0gMTsgayA8IG1heDsgaysrKSB7XG4gICAgICAgICAgICBwMSA9IHB4KDAsIGspO1xuICAgICAgICAgICAgcDIgPSBweChrICsgMSwgbWF4KTtcbiAgICAgICAgICAgIHAxMiA9IHAxICogcDI7XG4gICAgICAgICAgICBpZiAocDEyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcDEyID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG0xID0gbXgoMCwgaykgKiBwMjtcbiAgICAgICAgICAgIG0yID0gbXgoayArIDEsIG1heCkgKiBwMTtcbiAgICAgICAgICAgIG0xMiA9IG0xIC0gbTI7XG4gICAgICAgICAgICB2ZXRba10gPSBtMTIgKiBtMTIgLyBwMTI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEFycmF5SGVscGVyLm1heEluZGV4KHZldCk7XG4gICAgfVxuXG4gICAgdGhyZXNob2xkID0gZGV0ZXJtaW5lVGhyZXNob2xkKCk7XG4gICAgcmV0dXJuIHRocmVzaG9sZCA8PCBiaXRTaGlmdDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBvdHN1VGhyZXNob2xkKGltYWdlV3JhcHBlciwgdGFyZ2V0V3JhcHBlcikge1xuICAgIHZhciB0aHJlc2hvbGQgPSBkZXRlcm1pbmVPdHN1VGhyZXNob2xkKGltYWdlV3JhcHBlcik7XG5cbiAgICB0aHJlc2hvbGRJbWFnZShpbWFnZVdyYXBwZXIsIHRocmVzaG9sZCwgdGFyZ2V0V3JhcHBlcik7XG4gICAgcmV0dXJuIHRocmVzaG9sZDtcbn07XG5cbi8vIGxvY2FsIHRocmVzaG9sZGluZ1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVCaW5hcnlJbWFnZShpbWFnZVdyYXBwZXIsIGludGVncmFsV3JhcHBlciwgdGFyZ2V0V3JhcHBlcikge1xuICAgIGNvbXB1dGVJbnRlZ3JhbEltYWdlKGltYWdlV3JhcHBlciwgaW50ZWdyYWxXcmFwcGVyKTtcblxuICAgIGlmICghdGFyZ2V0V3JhcHBlcikge1xuICAgICAgICB0YXJnZXRXcmFwcGVyID0gaW1hZ2VXcmFwcGVyO1xuICAgIH1cbiAgICB2YXIgaW1hZ2VEYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHRhcmdldERhdGEgPSB0YXJnZXRXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHdpZHRoID0gaW1hZ2VXcmFwcGVyLnNpemUueDtcbiAgICB2YXIgaGVpZ2h0ID0gaW1hZ2VXcmFwcGVyLnNpemUueTtcbiAgICB2YXIgaW50ZWdyYWxJbWFnZURhdGEgPSBpbnRlZ3JhbFdyYXBwZXIuZGF0YTtcbiAgICB2YXIgc3VtID0gMCwgdiwgdSwga2VybmVsID0gMywgQSwgQiwgQywgRCwgYXZnLCBzaXplID0gKGtlcm5lbCAqIDIgKyAxKSAqIChrZXJuZWwgKiAyICsgMSk7XG5cbiAgICAvLyBjbGVhciBvdXQgdG9wICYgYm90dG9tLWJvcmRlclxuICAgIGZvciAoIHYgPSAwOyB2IDw9IGtlcm5lbDsgdisrKSB7XG4gICAgICAgIGZvciAoIHUgPSAwOyB1IDwgd2lkdGg7IHUrKykge1xuICAgICAgICAgICAgdGFyZ2V0RGF0YVsoKHYpICogd2lkdGgpICsgdV0gPSAwO1xuICAgICAgICAgICAgdGFyZ2V0RGF0YVsoKChoZWlnaHQgLSAxKSAtIHYpICogd2lkdGgpICsgdV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY2xlYXIgb3V0IGxlZnQgJiByaWdodCBib3JkZXJcbiAgICBmb3IgKCB2ID0ga2VybmVsOyB2IDwgaGVpZ2h0IC0ga2VybmVsOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IDA7IHUgPD0ga2VybmVsOyB1KyspIHtcbiAgICAgICAgICAgIHRhcmdldERhdGFbKCh2KSAqIHdpZHRoKSArIHVdID0gMDtcbiAgICAgICAgICAgIHRhcmdldERhdGFbKCh2KSAqIHdpZHRoKSArICh3aWR0aCAtIDEgLSB1KV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9yICggdiA9IGtlcm5lbCArIDE7IHYgPCBoZWlnaHQgLSBrZXJuZWwgLSAxOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IGtlcm5lbCArIDE7IHUgPCB3aWR0aCAtIGtlcm5lbDsgdSsrKSB7XG4gICAgICAgICAgICBBID0gaW50ZWdyYWxJbWFnZURhdGFbKHYgLSBrZXJuZWwgLSAxKSAqIHdpZHRoICsgKHUgLSBrZXJuZWwgLSAxKV07XG4gICAgICAgICAgICBCID0gaW50ZWdyYWxJbWFnZURhdGFbKHYgLSBrZXJuZWwgLSAxKSAqIHdpZHRoICsgKHUgKyBrZXJuZWwpXTtcbiAgICAgICAgICAgIEMgPSBpbnRlZ3JhbEltYWdlRGF0YVsodiArIGtlcm5lbCkgKiB3aWR0aCArICh1IC0ga2VybmVsIC0gMSldO1xuICAgICAgICAgICAgRCA9IGludGVncmFsSW1hZ2VEYXRhWyh2ICsga2VybmVsKSAqIHdpZHRoICsgKHUgKyBrZXJuZWwpXTtcbiAgICAgICAgICAgIHN1bSA9IEQgLSBDIC0gQiArIEE7XG4gICAgICAgICAgICBhdmcgPSBzdW0gLyAoc2l6ZSk7XG4gICAgICAgICAgICB0YXJnZXREYXRhW3YgKiB3aWR0aCArIHVdID0gaW1hZ2VEYXRhW3YgKiB3aWR0aCArIHVdID4gKGF2ZyArIDUpID8gMCA6IDE7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY2x1c3Rlcihwb2ludHMsIHRocmVzaG9sZCwgcHJvcGVydHkpIHtcbiAgICB2YXIgaSwgaywgY2x1c3RlciwgcG9pbnQsIGNsdXN0ZXJzID0gW107XG5cbiAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICAgIHByb3BlcnR5ID0gXCJyYWRcIjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRUb0NsdXN0ZXIobmV3UG9pbnQpIHtcbiAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgICAgIGZvciAoIGsgPSAwOyBrIDwgY2x1c3RlcnMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIGNsdXN0ZXIgPSBjbHVzdGVyc1trXTtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyLmZpdHMobmV3UG9pbnQpKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlci5hZGQobmV3UG9pbnQpO1xuICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgfVxuXG4gICAgLy8gaXRlcmF0ZSBvdmVyIGVhY2ggY2xvdWRcbiAgICBmb3IgKCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwb2ludCA9IENsdXN0ZXIyLmNyZWF0ZVBvaW50KHBvaW50c1tpXSwgaSwgcHJvcGVydHkpO1xuICAgICAgICBpZiAoIWFkZFRvQ2x1c3Rlcihwb2ludCkpIHtcbiAgICAgICAgICAgIGNsdXN0ZXJzLnB1c2goQ2x1c3RlcjIuY3JlYXRlKHBvaW50LCB0aHJlc2hvbGQpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2x1c3RlcnM7XG59O1xuXG5leHBvcnQgY29uc3QgVHJhY2VyID0ge1xuICAgIHRyYWNlOiBmdW5jdGlvbihwb2ludHMsIHZlYykge1xuICAgICAgICB2YXIgaXRlcmF0aW9uLCBtYXhJdGVyYXRpb25zID0gMTAsIHRvcCA9IFtdLCByZXN1bHQgPSBbXSwgY2VudGVyUG9zID0gMCwgY3VycmVudFBvcyA9IDA7XG5cbiAgICAgICAgZnVuY3Rpb24gdHJhY2UoaWR4LCBmb3J3YXJkKSB7XG4gICAgICAgICAgICB2YXIgZnJvbSwgdG8sIHRvSWR4LCBwcmVkaWN0ZWRQb3MsIHRocmVzaG9sZFggPSAxLCB0aHJlc2hvbGRZID0gTWF0aC5hYnModmVjWzFdIC8gMTApLCBmb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiBtYXRjaChwb3MsIHByZWRpY3RlZCkge1xuICAgICAgICAgICAgICAgIGlmIChwb3MueCA+IChwcmVkaWN0ZWQueCAtIHRocmVzaG9sZFgpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBwb3MueCA8IChwcmVkaWN0ZWQueCArIHRocmVzaG9sZFgpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBwb3MueSA+IChwcmVkaWN0ZWQueSAtIHRocmVzaG9sZFkpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBwb3MueSA8IChwcmVkaWN0ZWQueSArIHRocmVzaG9sZFkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBuZXh0IGluZGV4IGlzIHdpdGhpbiB0aGUgdmVjIHNwZWNpZmljYXRpb25zXG4gICAgICAgICAgICAvLyBpZiBub3QsIGNoZWNrIGFzIGxvbmcgYXMgdGhlIHRocmVzaG9sZCBpcyBtZXRcblxuICAgICAgICAgICAgZnJvbSA9IHBvaW50c1tpZHhdO1xuICAgICAgICAgICAgaWYgKGZvcndhcmQpIHtcbiAgICAgICAgICAgICAgICBwcmVkaWN0ZWRQb3MgPSB7XG4gICAgICAgICAgICAgICAgICAgIHg6IGZyb20ueCArIHZlY1swXSxcbiAgICAgICAgICAgICAgICAgICAgeTogZnJvbS55ICsgdmVjWzFdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJlZGljdGVkUG9zID0ge1xuICAgICAgICAgICAgICAgICAgICB4OiBmcm9tLnggLSB2ZWNbMF0sXG4gICAgICAgICAgICAgICAgICAgIHk6IGZyb20ueSAtIHZlY1sxXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRvSWR4ID0gZm9yd2FyZCA/IGlkeCArIDEgOiBpZHggLSAxO1xuICAgICAgICAgICAgdG8gPSBwb2ludHNbdG9JZHhdO1xuICAgICAgICAgICAgd2hpbGUgKHRvICYmICggZm91bmQgPSBtYXRjaCh0bywgcHJlZGljdGVkUG9zKSkgIT09IHRydWUgJiYgKE1hdGguYWJzKHRvLnkgLSBmcm9tLnkpIDwgdmVjWzFdKSkge1xuICAgICAgICAgICAgICAgIHRvSWR4ID0gZm9yd2FyZCA/IHRvSWR4ICsgMSA6IHRvSWR4IC0gMTtcbiAgICAgICAgICAgICAgICB0byA9IHBvaW50c1t0b0lkeF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmb3VuZCA/IHRvSWR4IDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoIGl0ZXJhdGlvbiA9IDA7IGl0ZXJhdGlvbiA8IG1heEl0ZXJhdGlvbnM7IGl0ZXJhdGlvbisrKSB7XG4gICAgICAgICAgICAvLyByYW5kb21seSBzZWxlY3QgcG9pbnQgdG8gc3RhcnQgd2l0aFxuICAgICAgICAgICAgY2VudGVyUG9zID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9pbnRzLmxlbmd0aCk7XG5cbiAgICAgICAgICAgIC8vIHRyYWNlIGZvcndhcmRcbiAgICAgICAgICAgIHRvcCA9IFtdO1xuICAgICAgICAgICAgY3VycmVudFBvcyA9IGNlbnRlclBvcztcbiAgICAgICAgICAgIHRvcC5wdXNoKHBvaW50c1tjdXJyZW50UG9zXSk7XG4gICAgICAgICAgICB3aGlsZSAoKCBjdXJyZW50UG9zID0gdHJhY2UoY3VycmVudFBvcywgdHJ1ZSkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdG9wLnB1c2gocG9pbnRzW2N1cnJlbnRQb3NdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjZW50ZXJQb3MgPiAwKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFBvcyA9IGNlbnRlclBvcztcbiAgICAgICAgICAgICAgICB3aGlsZSAoKCBjdXJyZW50UG9zID0gdHJhY2UoY3VycmVudFBvcywgZmFsc2UpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0b3AucHVzaChwb2ludHNbY3VycmVudFBvc10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRvcC5sZW5ndGggPiByZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IERJTEFURSA9IDE7XG5leHBvcnQgY29uc3QgRVJPREUgPSAyO1xuXG5leHBvcnQgZnVuY3Rpb24gZGlsYXRlKGluSW1hZ2VXcmFwcGVyLCBvdXRJbWFnZVdyYXBwZXIpIHtcbiAgICB2YXIgdixcbiAgICAgICAgdSxcbiAgICAgICAgaW5JbWFnZURhdGEgPSBpbkltYWdlV3JhcHBlci5kYXRhLFxuICAgICAgICBvdXRJbWFnZURhdGEgPSBvdXRJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgaGVpZ2h0ID0gaW5JbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICB3aWR0aCA9IGluSW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgc3VtLFxuICAgICAgICB5U3RhcnQxLFxuICAgICAgICB5U3RhcnQyLFxuICAgICAgICB4U3RhcnQxLFxuICAgICAgICB4U3RhcnQyO1xuXG4gICAgZm9yICggdiA9IDE7IHYgPCBoZWlnaHQgLSAxOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IDE7IHUgPCB3aWR0aCAtIDE7IHUrKykge1xuICAgICAgICAgICAgeVN0YXJ0MSA9IHYgLSAxO1xuICAgICAgICAgICAgeVN0YXJ0MiA9IHYgKyAxO1xuICAgICAgICAgICAgeFN0YXJ0MSA9IHUgLSAxO1xuICAgICAgICAgICAgeFN0YXJ0MiA9IHUgKyAxO1xuICAgICAgICAgICAgc3VtID0gaW5JbWFnZURhdGFbeVN0YXJ0MSAqIHdpZHRoICsgeFN0YXJ0MV0gKyBpbkltYWdlRGF0YVt5U3RhcnQxICogd2lkdGggKyB4U3RhcnQyXSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt2ICogd2lkdGggKyB1XSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt5U3RhcnQyICogd2lkdGggKyB4U3RhcnQxXSArIGluSW1hZ2VEYXRhW3lTdGFydDIgKiB3aWR0aCArIHhTdGFydDJdO1xuICAgICAgICAgICAgb3V0SW1hZ2VEYXRhW3YgKiB3aWR0aCArIHVdID0gc3VtID4gMCA/IDEgOiAwO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVyb2RlKGluSW1hZ2VXcmFwcGVyLCBvdXRJbWFnZVdyYXBwZXIpIHtcbiAgICB2YXIgdixcbiAgICAgICAgdSxcbiAgICAgICAgaW5JbWFnZURhdGEgPSBpbkltYWdlV3JhcHBlci5kYXRhLFxuICAgICAgICBvdXRJbWFnZURhdGEgPSBvdXRJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgaGVpZ2h0ID0gaW5JbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICB3aWR0aCA9IGluSW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgc3VtLFxuICAgICAgICB5U3RhcnQxLFxuICAgICAgICB5U3RhcnQyLFxuICAgICAgICB4U3RhcnQxLFxuICAgICAgICB4U3RhcnQyO1xuXG4gICAgZm9yICggdiA9IDE7IHYgPCBoZWlnaHQgLSAxOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IDE7IHUgPCB3aWR0aCAtIDE7IHUrKykge1xuICAgICAgICAgICAgeVN0YXJ0MSA9IHYgLSAxO1xuICAgICAgICAgICAgeVN0YXJ0MiA9IHYgKyAxO1xuICAgICAgICAgICAgeFN0YXJ0MSA9IHUgLSAxO1xuICAgICAgICAgICAgeFN0YXJ0MiA9IHUgKyAxO1xuICAgICAgICAgICAgc3VtID0gaW5JbWFnZURhdGFbeVN0YXJ0MSAqIHdpZHRoICsgeFN0YXJ0MV0gKyBpbkltYWdlRGF0YVt5U3RhcnQxICogd2lkdGggKyB4U3RhcnQyXSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt2ICogd2lkdGggKyB1XSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt5U3RhcnQyICogd2lkdGggKyB4U3RhcnQxXSArIGluSW1hZ2VEYXRhW3lTdGFydDIgKiB3aWR0aCArIHhTdGFydDJdO1xuICAgICAgICAgICAgb3V0SW1hZ2VEYXRhW3YgKiB3aWR0aCArIHVdID0gc3VtID09PSA1ID8gMSA6IDA7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc3VidHJhY3QoYUltYWdlV3JhcHBlciwgYkltYWdlV3JhcHBlciwgcmVzdWx0SW1hZ2VXcmFwcGVyKSB7XG4gICAgaWYgKCFyZXN1bHRJbWFnZVdyYXBwZXIpIHtcbiAgICAgICAgcmVzdWx0SW1hZ2VXcmFwcGVyID0gYUltYWdlV3JhcHBlcjtcbiAgICB9XG4gICAgdmFyIGxlbmd0aCA9IGFJbWFnZVdyYXBwZXIuZGF0YS5sZW5ndGgsXG4gICAgICAgIGFJbWFnZURhdGEgPSBhSW1hZ2VXcmFwcGVyLmRhdGEsXG4gICAgICAgIGJJbWFnZURhdGEgPSBiSW1hZ2VXcmFwcGVyLmRhdGEsXG4gICAgICAgIGNJbWFnZURhdGEgPSByZXN1bHRJbWFnZVdyYXBwZXIuZGF0YTtcblxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBjSW1hZ2VEYXRhW2xlbmd0aF0gPSBhSW1hZ2VEYXRhW2xlbmd0aF0gLSBiSW1hZ2VEYXRhW2xlbmd0aF07XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGJpdHdpc2VPcihhSW1hZ2VXcmFwcGVyLCBiSW1hZ2VXcmFwcGVyLCByZXN1bHRJbWFnZVdyYXBwZXIpIHtcbiAgICBpZiAoIXJlc3VsdEltYWdlV3JhcHBlcikge1xuICAgICAgICByZXN1bHRJbWFnZVdyYXBwZXIgPSBhSW1hZ2VXcmFwcGVyO1xuICAgIH1cbiAgICB2YXIgbGVuZ3RoID0gYUltYWdlV3JhcHBlci5kYXRhLmxlbmd0aCxcbiAgICAgICAgYUltYWdlRGF0YSA9IGFJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgYkltYWdlRGF0YSA9IGJJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgY0ltYWdlRGF0YSA9IHJlc3VsdEltYWdlV3JhcHBlci5kYXRhO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGNJbWFnZURhdGFbbGVuZ3RoXSA9IGFJbWFnZURhdGFbbGVuZ3RoXSB8fCBiSW1hZ2VEYXRhW2xlbmd0aF07XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvdW50Tm9uWmVybyhpbWFnZVdyYXBwZXIpIHtcbiAgICB2YXIgbGVuZ3RoID0gaW1hZ2VXcmFwcGVyLmRhdGEubGVuZ3RoLCBkYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGEsIHN1bSA9IDA7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgc3VtICs9IGRhdGFbbGVuZ3RoXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b3BHZW5lcmljKGxpc3QsIHRvcCwgc2NvcmVGdW5jKSB7XG4gICAgdmFyIGksIG1pbklkeCA9IDAsIG1pbiA9IDAsIHF1ZXVlID0gW10sIHNjb3JlLCBoaXQsIHBvcztcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgdG9wOyBpKyspIHtcbiAgICAgICAgcXVldWVbaV0gPSB7XG4gICAgICAgICAgICBzY29yZTogMCxcbiAgICAgICAgICAgIGl0ZW06IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc2NvcmUgPSBzY29yZUZ1bmMuYXBwbHkodGhpcywgW2xpc3RbaV1dKTtcbiAgICAgICAgaWYgKHNjb3JlID4gbWluKSB7XG4gICAgICAgICAgICBoaXQgPSBxdWV1ZVttaW5JZHhdO1xuICAgICAgICAgICAgaGl0LnNjb3JlID0gc2NvcmU7XG4gICAgICAgICAgICBoaXQuaXRlbSA9IGxpc3RbaV07XG4gICAgICAgICAgICBtaW4gPSBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgICAgICAgICAgZm9yICggcG9zID0gMDsgcG9zIDwgdG9wOyBwb3MrKykge1xuICAgICAgICAgICAgICAgIGlmIChxdWV1ZVtwb3NdLnNjb3JlIDwgbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbiA9IHF1ZXVlW3Bvc10uc2NvcmU7XG4gICAgICAgICAgICAgICAgICAgIG1pbklkeCA9IHBvcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcXVldWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ3JheUFycmF5RnJvbUltYWdlKGh0bWxJbWFnZSwgb2Zmc2V0WCwgY3R4LCBhcnJheSkge1xuICAgIGN0eC5kcmF3SW1hZ2UoaHRtbEltYWdlLCBvZmZzZXRYLCAwLCBodG1sSW1hZ2Uud2lkdGgsIGh0bWxJbWFnZS5oZWlnaHQpO1xuICAgIHZhciBjdHhEYXRhID0gY3R4LmdldEltYWdlRGF0YShvZmZzZXRYLCAwLCBodG1sSW1hZ2Uud2lkdGgsIGh0bWxJbWFnZS5oZWlnaHQpLmRhdGE7XG4gICAgY29tcHV0ZUdyYXkoY3R4RGF0YSwgYXJyYXkpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXlBcnJheUZyb21Db250ZXh0KGN0eCwgc2l6ZSwgb2Zmc2V0LCBhcnJheSkge1xuICAgIHZhciBjdHhEYXRhID0gY3R4LmdldEltYWdlRGF0YShvZmZzZXQueCwgb2Zmc2V0LnksIHNpemUueCwgc2l6ZS55KS5kYXRhO1xuICAgIGNvbXB1dGVHcmF5KGN0eERhdGEsIGFycmF5KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBncmF5QW5kSGFsZlNhbXBsZUZyb21DYW52YXNEYXRhKGNhbnZhc0RhdGEsIHNpemUsIG91dEFycmF5KSB7XG4gICAgdmFyIHRvcFJvd0lkeCA9IDA7XG4gICAgdmFyIGJvdHRvbVJvd0lkeCA9IHNpemUueDtcbiAgICB2YXIgZW5kSWR4ID0gTWF0aC5mbG9vcihjYW52YXNEYXRhLmxlbmd0aCAvIDQpO1xuICAgIHZhciBvdXRXaWR0aCA9IHNpemUueCAvIDI7XG4gICAgdmFyIG91dEltZ0lkeCA9IDA7XG4gICAgdmFyIGluV2lkdGggPSBzaXplLng7XG4gICAgdmFyIGk7XG5cbiAgICB3aGlsZSAoYm90dG9tUm93SWR4IDwgZW5kSWR4KSB7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgb3V0V2lkdGg7IGkrKykge1xuICAgICAgICAgICAgb3V0QXJyYXlbb3V0SW1nSWR4XSA9IChcbiAgICAgICAgICAgICAgICAoMC4yOTkgKiBjYW52YXNEYXRhW3RvcFJvd0lkeCAqIDQgKyAwXSArXG4gICAgICAgICAgICAgICAgIDAuNTg3ICogY2FudmFzRGF0YVt0b3BSb3dJZHggKiA0ICsgMV0gK1xuICAgICAgICAgICAgICAgICAwLjExNCAqIGNhbnZhc0RhdGFbdG9wUm93SWR4ICogNCArIDJdKSArXG4gICAgICAgICAgICAgICAgKDAuMjk5ICogY2FudmFzRGF0YVsodG9wUm93SWR4ICsgMSkgKiA0ICsgMF0gK1xuICAgICAgICAgICAgICAgICAwLjU4NyAqIGNhbnZhc0RhdGFbKHRvcFJvd0lkeCArIDEpICogNCArIDFdICtcbiAgICAgICAgICAgICAgICAgMC4xMTQgKiBjYW52YXNEYXRhWyh0b3BSb3dJZHggKyAxKSAqIDQgKyAyXSkgK1xuICAgICAgICAgICAgICAgICgwLjI5OSAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCkgKiA0ICsgMF0gK1xuICAgICAgICAgICAgICAgICAwLjU4NyAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCkgKiA0ICsgMV0gK1xuICAgICAgICAgICAgICAgICAwLjExNCAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCkgKiA0ICsgMl0pICtcbiAgICAgICAgICAgICAgICAoMC4yOTkgKiBjYW52YXNEYXRhWyhib3R0b21Sb3dJZHggKyAxKSAqIDQgKyAwXSArXG4gICAgICAgICAgICAgICAgIDAuNTg3ICogY2FudmFzRGF0YVsoYm90dG9tUm93SWR4ICsgMSkgKiA0ICsgMV0gK1xuICAgICAgICAgICAgICAgICAwLjExNCAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCArIDEpICogNCArIDJdKSkgLyA0O1xuICAgICAgICAgICAgb3V0SW1nSWR4Kys7XG4gICAgICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyAyO1xuICAgICAgICAgICAgYm90dG9tUm93SWR4ID0gYm90dG9tUm93SWR4ICsgMjtcbiAgICAgICAgfVxuICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyBpbldpZHRoO1xuICAgICAgICBib3R0b21Sb3dJZHggPSBib3R0b21Sb3dJZHggKyBpbldpZHRoO1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlR3JheShpbWFnZURhdGEsIG91dEFycmF5LCBjb25maWcpIHtcbiAgICB2YXIgbCA9IChpbWFnZURhdGEubGVuZ3RoIC8gNCkgfCAwLFxuICAgICAgICBpLFxuICAgICAgICBzaW5nbGVDaGFubmVsID0gY29uZmlnICYmIGNvbmZpZy5zaW5nbGVDaGFubmVsID09PSB0cnVlO1xuXG4gICAgaWYgKHNpbmdsZUNoYW5uZWwpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgb3V0QXJyYXlbaV0gPSBpbWFnZURhdGFbaSAqIDQgKyAwXTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIG91dEFycmF5W2ldID1cbiAgICAgICAgICAgICAgICAwLjI5OSAqIGltYWdlRGF0YVtpICogNCArIDBdICsgMC41ODcgKiBpbWFnZURhdGFbaSAqIDQgKyAxXSArIDAuMTE0ICogaW1hZ2VEYXRhW2kgKiA0ICsgMl07XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEltYWdlQXJyYXkoc3JjLCBjYWxsYmFjaywgY2FudmFzKSB7XG4gICAgaWYgKCFjYW52YXMpIHtcbiAgICAgICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgfVxuICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICBpbWcuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHRoaXMud2lkdGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICBjdHguZHJhd0ltYWdlKHRoaXMsIDAsIDApO1xuICAgICAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSh0aGlzLndpZHRoICogdGhpcy5oZWlnaHQpO1xuICAgICAgICBjdHguZHJhd0ltYWdlKHRoaXMsIDAsIDApO1xuICAgICAgICB2YXIgZGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpLmRhdGE7XG4gICAgICAgIGNvbXB1dGVHcmF5KGRhdGEsIGFycmF5KTtcbiAgICAgICAgdGhpcy5jYWxsYmFjayhhcnJheSwge1xuICAgICAgICAgICAgeDogdGhpcy53aWR0aCxcbiAgICAgICAgICAgIHk6IHRoaXMuaGVpZ2h0XG4gICAgICAgIH0sIHRoaXMpO1xuICAgIH07XG4gICAgaW1nLnNyYyA9IHNyYztcbn07XG5cbi8qKlxuICogQHBhcmFtIGluSW1nIHtJbWFnZVdyYXBwZXJ9IGlucHV0IGltYWdlIHRvIGJlIHNhbXBsZWRcbiAqIEBwYXJhbSBvdXRJbWcge0ltYWdlV3JhcHBlcn0gdG8gYmUgc3RvcmVkIGluXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYWxmU2FtcGxlKGluSW1nV3JhcHBlciwgb3V0SW1nV3JhcHBlcikge1xuICAgIHZhciBpbkltZyA9IGluSW1nV3JhcHBlci5kYXRhO1xuICAgIHZhciBpbldpZHRoID0gaW5JbWdXcmFwcGVyLnNpemUueDtcbiAgICB2YXIgb3V0SW1nID0gb3V0SW1nV3JhcHBlci5kYXRhO1xuICAgIHZhciB0b3BSb3dJZHggPSAwO1xuICAgIHZhciBib3R0b21Sb3dJZHggPSBpbldpZHRoO1xuICAgIHZhciBlbmRJZHggPSBpbkltZy5sZW5ndGg7XG4gICAgdmFyIG91dFdpZHRoID0gaW5XaWR0aCAvIDI7XG4gICAgdmFyIG91dEltZ0lkeCA9IDA7XG4gICAgd2hpbGUgKGJvdHRvbVJvd0lkeCA8IGVuZElkeCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG91dFdpZHRoOyBpKyspIHtcbiAgICAgICAgICAgIG91dEltZ1tvdXRJbWdJZHhdID0gTWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAoaW5JbWdbdG9wUm93SWR4XSArIGluSW1nW3RvcFJvd0lkeCArIDFdICsgaW5JbWdbYm90dG9tUm93SWR4XSArIGluSW1nW2JvdHRvbVJvd0lkeCArIDFdKSAvIDQpO1xuICAgICAgICAgICAgb3V0SW1nSWR4Kys7XG4gICAgICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyAyO1xuICAgICAgICAgICAgYm90dG9tUm93SWR4ID0gYm90dG9tUm93SWR4ICsgMjtcbiAgICAgICAgfVxuICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyBpbldpZHRoO1xuICAgICAgICBib3R0b21Sb3dJZHggPSBib3R0b21Sb3dJZHggKyBpbldpZHRoO1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBoc3YycmdiKGhzdiwgcmdiKSB7XG4gICAgdmFyIGggPSBoc3ZbMF0sXG4gICAgICAgIHMgPSBoc3ZbMV0sXG4gICAgICAgIHYgPSBoc3ZbMl0sXG4gICAgICAgIGMgPSB2ICogcyxcbiAgICAgICAgeCA9IGMgKiAoMSAtIE1hdGguYWJzKChoIC8gNjApICUgMiAtIDEpKSxcbiAgICAgICAgbSA9IHYgLSBjLFxuICAgICAgICByID0gMCxcbiAgICAgICAgZyA9IDAsXG4gICAgICAgIGIgPSAwO1xuXG4gICAgcmdiID0gcmdiIHx8IFswLCAwLCAwXTtcblxuICAgIGlmIChoIDwgNjApIHtcbiAgICAgICAgciA9IGM7XG4gICAgICAgIGcgPSB4O1xuICAgIH0gZWxzZSBpZiAoaCA8IDEyMCkge1xuICAgICAgICByID0geDtcbiAgICAgICAgZyA9IGM7XG4gICAgfSBlbHNlIGlmIChoIDwgMTgwKSB7XG4gICAgICAgIGcgPSBjO1xuICAgICAgICBiID0geDtcbiAgICB9IGVsc2UgaWYgKGggPCAyNDApIHtcbiAgICAgICAgZyA9IHg7XG4gICAgICAgIGIgPSBjO1xuICAgIH0gZWxzZSBpZiAoaCA8IDMwMCkge1xuICAgICAgICByID0geDtcbiAgICAgICAgYiA9IGM7XG4gICAgfSBlbHNlIGlmIChoIDwgMzYwKSB7XG4gICAgICAgIHIgPSBjO1xuICAgICAgICBiID0geDtcbiAgICB9XG4gICAgcmdiWzBdID0gKChyICsgbSkgKiAyNTUpIHwgMDtcbiAgICByZ2JbMV0gPSAoKGcgKyBtKSAqIDI1NSkgfCAwO1xuICAgIHJnYlsyXSA9ICgoYiArIG0pICogMjU1KSB8IDA7XG4gICAgcmV0dXJuIHJnYjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfY29tcHV0ZURpdmlzb3JzKG4pIHtcbiAgICB2YXIgbGFyZ2VEaXZpc29ycyA9IFtdLFxuICAgICAgICBkaXZpc29ycyA9IFtdLFxuICAgICAgICBpO1xuXG4gICAgZm9yIChpID0gMTsgaSA8IE1hdGguc3FydChuKSArIDE7IGkrKykge1xuICAgICAgICBpZiAobiAlIGkgPT09IDApIHtcbiAgICAgICAgICAgIGRpdmlzb3JzLnB1c2goaSk7XG4gICAgICAgICAgICBpZiAoaSAhPT0gbiAvIGkpIHtcbiAgICAgICAgICAgICAgICBsYXJnZURpdmlzb3JzLnVuc2hpZnQoTWF0aC5mbG9vcihuIC8gaSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkaXZpc29ycy5jb25jYXQobGFyZ2VEaXZpc29ycyk7XG59O1xuXG5mdW5jdGlvbiBfY29tcHV0ZUludGVyc2VjdGlvbihhcnIxLCBhcnIyKSB7XG4gICAgdmFyIGkgPSAwLFxuICAgICAgICBqID0gMCxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoaSA8IGFycjEubGVuZ3RoICYmIGogPCBhcnIyLmxlbmd0aCkge1xuICAgICAgICBpZiAoYXJyMVtpXSA9PT0gYXJyMltqXSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goYXJyMVtpXSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBqKys7XG4gICAgICAgIH0gZWxzZSBpZiAoYXJyMVtpXSA+IGFycjJbal0pIHtcbiAgICAgICAgICAgIGorKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVBhdGNoU2l6ZShwYXRjaFNpemUsIGltZ1NpemUpIHtcbiAgICB2YXIgZGl2aXNvcnNYID0gX2NvbXB1dGVEaXZpc29ycyhpbWdTaXplLngpLFxuICAgICAgICBkaXZpc29yc1kgPSBfY29tcHV0ZURpdmlzb3JzKGltZ1NpemUueSksXG4gICAgICAgIHdpZGVTaWRlID0gTWF0aC5tYXgoaW1nU2l6ZS54LCBpbWdTaXplLnkpLFxuICAgICAgICBjb21tb24gPSBfY29tcHV0ZUludGVyc2VjdGlvbihkaXZpc29yc1gsIGRpdmlzb3JzWSksXG4gICAgICAgIG5yT2ZQYXRjaGVzTGlzdCA9IFs4LCAxMCwgMTUsIDIwLCAzMiwgNjAsIDgwXSxcbiAgICAgICAgbnJPZlBhdGNoZXNNYXAgPSB7XG4gICAgICAgICAgICBcIngtc21hbGxcIjogNSxcbiAgICAgICAgICAgIFwic21hbGxcIjogNCxcbiAgICAgICAgICAgIFwibWVkaXVtXCI6IDMsXG4gICAgICAgICAgICBcImxhcmdlXCI6IDIsXG4gICAgICAgICAgICBcIngtbGFyZ2VcIjogMVxuICAgICAgICB9LFxuICAgICAgICBuck9mUGF0Y2hlc0lkeCA9IG5yT2ZQYXRjaGVzTWFwW3BhdGNoU2l6ZV0gfHwgbnJPZlBhdGNoZXNNYXAubWVkaXVtLFxuICAgICAgICBuck9mUGF0Y2hlcyA9IG5yT2ZQYXRjaGVzTGlzdFtuck9mUGF0Y2hlc0lkeF0sXG4gICAgICAgIGRlc2lyZWRQYXRjaFNpemUgPSBNYXRoLmZsb29yKHdpZGVTaWRlIC8gbnJPZlBhdGNoZXMpLFxuICAgICAgICBvcHRpbWFsUGF0Y2hTaXplO1xuXG4gICAgZnVuY3Rpb24gZmluZFBhdGNoU2l6ZUZvckRpdmlzb3JzKGRpdmlzb3JzKSB7XG4gICAgICAgIHZhciBpID0gMCxcbiAgICAgICAgICAgIGZvdW5kID0gZGl2aXNvcnNbTWF0aC5mbG9vcihkaXZpc29ycy5sZW5ndGggLyAyKV07XG5cbiAgICAgICAgd2hpbGUgKGkgPCAoZGl2aXNvcnMubGVuZ3RoIC0gMSkgJiYgZGl2aXNvcnNbaV0gPCBkZXNpcmVkUGF0Y2hTaXplKSB7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZGl2aXNvcnNbaV0gLSBkZXNpcmVkUGF0Y2hTaXplKSA+IE1hdGguYWJzKGRpdmlzb3JzW2kgLSAxXSAtIGRlc2lyZWRQYXRjaFNpemUpKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSBkaXZpc29yc1tpIC0gMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvdW5kID0gZGl2aXNvcnNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlc2lyZWRQYXRjaFNpemUgLyBmb3VuZCA8IG5yT2ZQYXRjaGVzTGlzdFtuck9mUGF0Y2hlc0lkeCArIDFdIC8gbnJPZlBhdGNoZXNMaXN0W25yT2ZQYXRjaGVzSWR4XSAmJlxuICAgICAgICAgICAgZGVzaXJlZFBhdGNoU2l6ZSAvIGZvdW5kID4gbnJPZlBhdGNoZXNMaXN0W25yT2ZQYXRjaGVzSWR4IC0gMV0gLyBuck9mUGF0Y2hlc0xpc3RbbnJPZlBhdGNoZXNJZHhdICkge1xuICAgICAgICAgICAgcmV0dXJuIHt4OiBmb3VuZCwgeTogZm91bmR9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIG9wdGltYWxQYXRjaFNpemUgPSBmaW5kUGF0Y2hTaXplRm9yRGl2aXNvcnMoY29tbW9uKTtcbiAgICBpZiAoIW9wdGltYWxQYXRjaFNpemUpIHtcbiAgICAgICAgb3B0aW1hbFBhdGNoU2l6ZSA9IGZpbmRQYXRjaFNpemVGb3JEaXZpc29ycyhfY29tcHV0ZURpdmlzb3JzKHdpZGVTaWRlKSk7XG4gICAgICAgIGlmICghb3B0aW1hbFBhdGNoU2l6ZSkge1xuICAgICAgICAgICAgb3B0aW1hbFBhdGNoU2l6ZSA9IGZpbmRQYXRjaFNpemVGb3JEaXZpc29ycygoX2NvbXB1dGVEaXZpc29ycyhkZXNpcmVkUGF0Y2hTaXplICogbnJPZlBhdGNoZXMpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGltYWxQYXRjaFNpemU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX3BhcnNlQ1NTRGltZW5zaW9uVmFsdWVzKHZhbHVlKSB7XG4gICAgdmFyIGRpbWVuc2lvbiA9IHtcbiAgICAgICAgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUpLFxuICAgICAgICB1bml0OiB2YWx1ZS5pbmRleE9mKFwiJVwiKSA9PT0gdmFsdWUubGVuZ3RoIC0gMSA/IFwiJVwiIDogXCIlXCJcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRpbWVuc2lvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBfZGltZW5zaW9uc0NvbnZlcnRlcnMgPSB7XG4gICAgdG9wOiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC5oZWlnaHQgKiAoZGltZW5zaW9uLnZhbHVlIC8gMTAwKSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJpZ2h0OiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC53aWR0aCAtIChjb250ZXh0LndpZHRoICogKGRpbWVuc2lvbi52YWx1ZSAvIDEwMCkpKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYm90dG9tOiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC5oZWlnaHQgLSAoY29udGV4dC5oZWlnaHQgKiAoZGltZW5zaW9uLnZhbHVlIC8gMTAwKSkpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBsZWZ0OiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC53aWR0aCAqIChkaW1lbnNpb24udmFsdWUgLyAxMDApKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlSW1hZ2VBcmVhKGlucHV0V2lkdGgsIGlucHV0SGVpZ2h0LCBhcmVhKSB7XG4gICAgdmFyIGNvbnRleHQgPSB7d2lkdGg6IGlucHV0V2lkdGgsIGhlaWdodDogaW5wdXRIZWlnaHR9O1xuXG4gICAgdmFyIHBhcnNlZEFyZWEgPSBPYmplY3Qua2V5cyhhcmVhKS5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LCBrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJlYVtrZXldLFxuICAgICAgICAgICAgcGFyc2VkID0gX3BhcnNlQ1NTRGltZW5zaW9uVmFsdWVzKHZhbHVlKSxcbiAgICAgICAgICAgIGNhbGN1bGF0ZWQgPSBfZGltZW5zaW9uc0NvbnZlcnRlcnNba2V5XShwYXJzZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIHJlc3VsdFtrZXldID0gY2FsY3VsYXRlZDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzeDogcGFyc2VkQXJlYS5sZWZ0LFxuICAgICAgICBzeTogcGFyc2VkQXJlYS50b3AsXG4gICAgICAgIHN3OiBwYXJzZWRBcmVhLnJpZ2h0IC0gcGFyc2VkQXJlYS5sZWZ0LFxuICAgICAgICBzaDogcGFyc2VkQXJlYS5ib3R0b20gLSBwYXJzZWRBcmVhLnRvcFxuICAgIH07XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9jdl91dGlscy5qcyIsImltcG9ydCBTdWJJbWFnZSBmcm9tICcuL3N1YkltYWdlJztcbmltcG9ydCB7aHN2MnJnYn0gZnJvbSAnLi4vY29tbW9uL2N2X3V0aWxzJztcbmltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuLi9jb21tb24vYXJyYXlfaGVscGVyJztcbmNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKSxcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGJhc2ljIGltYWdlIGNvbWJpbmluZyB0aGUgZGF0YSBhbmQgc2l6ZS5cbiAqIEluIGFkZGl0aW9uLCBzb21lIG1ldGhvZHMgZm9yIG1hbmlwdWxhdGlvbiBhcmUgY29udGFpbmVkLlxuICogQHBhcmFtIHNpemUge3gseX0gVGhlIHNpemUgb2YgdGhlIGltYWdlIGluIHBpeGVsXG4gKiBAcGFyYW0gZGF0YSB7QXJyYXl9IElmIGdpdmVuLCBhIGZsYXQgYXJyYXkgY29udGFpbmluZyB0aGUgcGl4ZWwgZGF0YVxuICogQHBhcmFtIEFycmF5VHlwZSB7VHlwZX0gSWYgZ2l2ZW4sIHRoZSBkZXNpcmVkIERhdGFUeXBlIG9mIHRoZSBBcnJheSAobWF5IGJlIHR5cGVkL25vbi10eXBlZClcbiAqIEBwYXJhbSBpbml0aWFsaXplIHtCb29sZWFufSBJbmRpY2F0aW5nIGlmIHRoZSBhcnJheSBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgb24gY3JlYXRpb24uXG4gKiBAcmV0dXJucyB7SW1hZ2VXcmFwcGVyfVxuICovXG5mdW5jdGlvbiBJbWFnZVdyYXBwZXIoc2l6ZSwgZGF0YSwgQXJyYXlUeXBlLCBpbml0aWFsaXplKSB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIGlmIChBcnJheVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBBcnJheVR5cGUoc2l6ZS54ICogc2l6ZS55KTtcbiAgICAgICAgICAgIGlmIChBcnJheVR5cGUgPT09IEFycmF5ICYmIGluaXRpYWxpemUpIHtcbiAgICAgICAgICAgICAgICBBcnJheUhlbHBlci5pbml0KHRoaXMuZGF0YSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBuZXcgVWludDhBcnJheShzaXplLnggKiBzaXplLnkpO1xuICAgICAgICAgICAgaWYgKFVpbnQ4QXJyYXkgPT09IEFycmF5ICYmIGluaXRpYWxpemUpIHtcbiAgICAgICAgICAgICAgICBBcnJheUhlbHBlci5pbml0KHRoaXMuZGF0YSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgICB0aGlzLnNpemUgPSBzaXplO1xufVxuXG4vKipcbiAqIHRlc3RzIGlmIGEgcG9zaXRpb24gaXMgd2l0aGluIHRoZSBpbWFnZSB3aXRoIGEgZ2l2ZW4gb2Zmc2V0XG4gKiBAcGFyYW0gaW1nUmVmIHt4LCB5fSBUaGUgbG9jYXRpb24gdG8gdGVzdFxuICogQHBhcmFtIGJvcmRlciBOdW1iZXIgdGhlIHBhZGRpbmcgdmFsdWUgaW4gcGl4ZWxcbiAqIEByZXR1cm5zIHtCb29sZWFufSB0cnVlIGlmIGxvY2F0aW9uIGluc2lkZSB0aGUgaW1hZ2UncyBib3JkZXIsIGZhbHNlIG90aGVyd2lzZVxuICogQHNlZSBjdmQvaW1hZ2UuaFxuICovXG5JbWFnZVdyYXBwZXIucHJvdG90eXBlLmluSW1hZ2VXaXRoQm9yZGVyID0gZnVuY3Rpb24oaW1nUmVmLCBib3JkZXIpIHtcbiAgICByZXR1cm4gKGltZ1JlZi54ID49IGJvcmRlcilcbiAgICAgICAgJiYgKGltZ1JlZi55ID49IGJvcmRlcilcbiAgICAgICAgJiYgKGltZ1JlZi54IDwgKHRoaXMuc2l6ZS54IC0gYm9yZGVyKSlcbiAgICAgICAgJiYgKGltZ1JlZi55IDwgKHRoaXMuc2l6ZS55IC0gYm9yZGVyKSk7XG59O1xuXG4vKipcbiAqIFBlcmZvcm1zIGJpbGluZWFyIHNhbXBsaW5nXG4gKiBAcGFyYW0gaW5JbWcgSW1hZ2UgdG8gZXh0cmFjdCBzYW1wbGUgZnJvbVxuICogQHBhcmFtIHggdGhlIHgtY29vcmRpbmF0ZVxuICogQHBhcmFtIHkgdGhlIHktY29vcmRpbmF0ZVxuICogQHJldHVybnMgdGhlIHNhbXBsZWQgdmFsdWVcbiAqIEBzZWUgY3ZkL3Zpc2lvbi5oXG4gKi9cbkltYWdlV3JhcHBlci5zYW1wbGUgPSBmdW5jdGlvbihpbkltZywgeCwgeSkge1xuICAgIHZhciBseCA9IE1hdGguZmxvb3IoeCk7XG4gICAgdmFyIGx5ID0gTWF0aC5mbG9vcih5KTtcbiAgICB2YXIgdyA9IGluSW1nLnNpemUueDtcbiAgICB2YXIgYmFzZSA9IGx5ICogaW5JbWcuc2l6ZS54ICsgbHg7XG4gICAgdmFyIGEgPSBpbkltZy5kYXRhW2Jhc2UgKyAwXTtcbiAgICB2YXIgYiA9IGluSW1nLmRhdGFbYmFzZSArIDFdO1xuICAgIHZhciBjID0gaW5JbWcuZGF0YVtiYXNlICsgd107XG4gICAgdmFyIGQgPSBpbkltZy5kYXRhW2Jhc2UgKyB3ICsgMV07XG4gICAgdmFyIGUgPSBhIC0gYjtcbiAgICB4IC09IGx4O1xuICAgIHkgLT0gbHk7XG5cbiAgICB2YXIgcmVzdWx0ID0gTWF0aC5mbG9vcih4ICogKHkgKiAoZSAtIGMgKyBkKSAtIGUpICsgeSAqIChjIC0gYSkgKyBhKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhIGdpdmVuIGFycmF5LiBTZXRzIGVhY2ggZWxlbWVudCB0byB6ZXJvLlxuICogQHBhcmFtIGFycmF5IHtBcnJheX0gVGhlIGFycmF5IHRvIGluaXRpYWxpemVcbiAqL1xuSW1hZ2VXcmFwcGVyLmNsZWFyQXJyYXkgPSBmdW5jdGlvbihhcnJheSkge1xuICAgIHZhciBsID0gYXJyYXkubGVuZ3RoO1xuICAgIHdoaWxlIChsLS0pIHtcbiAgICAgICAgYXJyYXlbbF0gPSAwO1xuICAgIH1cbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHtTdWJJbWFnZX0gZnJvbSB0aGUgY3VycmVudCBpbWFnZSAoe3RoaXN9KS5cbiAqIEBwYXJhbSBmcm9tIHtJbWFnZVJlZn0gVGhlIHBvc2l0aW9uIHdoZXJlIHRvIHN0YXJ0IHRoZSB7U3ViSW1hZ2V9IGZyb20uICh0b3AtbGVmdCBjb3JuZXIpXG4gKiBAcGFyYW0gc2l6ZSB7SW1hZ2VSZWZ9IFRoZSBzaXplIG9mIHRoZSByZXN1bHRpbmcgaW1hZ2VcbiAqIEByZXR1cm5zIHtTdWJJbWFnZX0gQSBzaGFyZWQgcGFydCBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5zdWJJbWFnZSA9IGZ1bmN0aW9uKGZyb20sIHNpemUpIHtcbiAgICByZXR1cm4gbmV3IFN1YkltYWdlKGZyb20sIHNpemUsIHRoaXMpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIHtJbWFnZVdyYXBwZXIpIGFuZCBjb3BpZXMgdGhlIG5lZWRlZCB1bmRlcmx5aW5nIGltYWdlLWRhdGEgYXJlYVxuICogQHBhcmFtIGltYWdlV3JhcHBlciB7SW1hZ2VXcmFwcGVyfSBUaGUgdGFyZ2V0IHtJbWFnZVdyYXBwZXJ9IHdoZXJlIHRoZSBkYXRhIHNob3VsZCBiZSBjb3BpZWRcbiAqIEBwYXJhbSBmcm9tIHtJbWFnZVJlZn0gVGhlIGxvY2F0aW9uIHdoZXJlIHRvIGNvcHkgZnJvbSAodG9wLWxlZnQgbG9jYXRpb24pXG4gKi9cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuc3ViSW1hZ2VBc0NvcHkgPSBmdW5jdGlvbihpbWFnZVdyYXBwZXIsIGZyb20pIHtcbiAgICB2YXIgc2l6ZVkgPSBpbWFnZVdyYXBwZXIuc2l6ZS55LCBzaXplWCA9IGltYWdlV3JhcHBlci5zaXplLng7XG4gICAgdmFyIHgsIHk7XG4gICAgZm9yICggeCA9IDA7IHggPCBzaXplWDsgeCsrKSB7XG4gICAgICAgIGZvciAoIHkgPSAwOyB5IDwgc2l6ZVk7IHkrKykge1xuICAgICAgICAgICAgaW1hZ2VXcmFwcGVyLmRhdGFbeSAqIHNpemVYICsgeF0gPSB0aGlzLmRhdGFbKGZyb20ueSArIHkpICogdGhpcy5zaXplLnggKyBmcm9tLnggKyB4XTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuY29weVRvID0gZnVuY3Rpb24oaW1hZ2VXcmFwcGVyKSB7XG4gICAgdmFyIGxlbmd0aCA9IHRoaXMuZGF0YS5sZW5ndGgsIHNyY0RhdGEgPSB0aGlzLmRhdGEsIGRzdERhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YTtcblxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBkc3REYXRhW2xlbmd0aF0gPSBzcmNEYXRhW2xlbmd0aF07XG4gICAgfVxufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBnaXZlbiBwaXhlbCBwb3NpdGlvbiBmcm9tIHRoZSBpbWFnZVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JheXNjYWxlIHZhbHVlIGF0IHRoZSBwaXhlbC1wb3NpdGlvblxuICovXG5JbWFnZVdyYXBwZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhW3kgKiB0aGlzLnNpemUueCArIHhdO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBnaXZlbiBwaXhlbCBwb3NpdGlvbiBmcm9tIHRoZSBpbWFnZVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JheXNjYWxlIHZhbHVlIGF0IHRoZSBwaXhlbC1wb3NpdGlvblxuICovXG5JbWFnZVdyYXBwZXIucHJvdG90eXBlLmdldFNhZmUgPSBmdW5jdGlvbih4LCB5KSB7XG4gICAgdmFyIGk7XG5cbiAgICBpZiAoIXRoaXMuaW5kZXhNYXBwaW5nKSB7XG4gICAgICAgIHRoaXMuaW5kZXhNYXBwaW5nID0ge1xuICAgICAgICAgICAgeDogW10sXG4gICAgICAgICAgICB5OiBbXVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5zaXplLng7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5pbmRleE1hcHBpbmcueFtpXSA9IGk7XG4gICAgICAgICAgICB0aGlzLmluZGV4TWFwcGluZy54W2kgKyB0aGlzLnNpemUueF0gPSBpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLnNpemUueTsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4TWFwcGluZy55W2ldID0gaTtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhNYXBwaW5nLnlbaSArIHRoaXMuc2l6ZS55XSA9IGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGF0YVsodGhpcy5pbmRleE1hcHBpbmcueVt5ICsgdGhpcy5zaXplLnldKSAqIHRoaXMuc2l6ZS54ICsgdGhpcy5pbmRleE1hcHBpbmcueFt4ICsgdGhpcy5zaXplLnhdXTtcbn07XG5cbi8qKlxuICogU2V0cyBhIGdpdmVuIHBpeGVsIHBvc2l0aW9uIGluIHRoZSBpbWFnZVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcGFyYW0gdmFsdWUge051bWJlcn0gVGhlIGdyYXlzY2FsZSB2YWx1ZSB0byBzZXRcbiAqIEByZXR1cm5zIHtJbWFnZVdyYXBwZXJ9IFRoZSBJbWFnZSBpdHNlbGYgKGZvciBwb3NzaWJsZSBjaGFpbmluZylcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbih4LCB5LCB2YWx1ZSkge1xuICAgIHRoaXMuZGF0YVt5ICogdGhpcy5zaXplLnggKyB4XSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXRzIHRoZSBib3JkZXIgb2YgdGhlIGltYWdlICgxIHBpeGVsKSB0byB6ZXJvXG4gKi9cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuemVyb0JvcmRlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpLCB3aWR0aCA9IHRoaXMuc2l6ZS54LCBoZWlnaHQgPSB0aGlzLnNpemUueSwgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICBmb3IgKCBpID0gMDsgaSA8IHdpZHRoOyBpKyspIHtcbiAgICAgICAgZGF0YVtpXSA9IGRhdGFbKGhlaWdodCAtIDEpICogd2lkdGggKyBpXSA9IDA7XG4gICAgfVxuICAgIGZvciAoIGkgPSAxOyBpIDwgaGVpZ2h0IC0gMTsgaSsrKSB7XG4gICAgICAgIGRhdGFbaSAqIHdpZHRoXSA9IGRhdGFbaSAqIHdpZHRoICsgKHdpZHRoIC0gMSldID0gMDtcbiAgICB9XG59O1xuXG4vKipcbiAqIEludmVydHMgYSBiaW5hcnkgaW1hZ2UgaW4gcGxhY2VcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5pbnZlcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgZGF0YSA9IHRoaXMuZGF0YSwgbGVuZ3RoID0gZGF0YS5sZW5ndGg7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgZGF0YVtsZW5ndGhdID0gZGF0YVtsZW5ndGhdID8gMCA6IDE7XG4gICAgfVxufTtcblxuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5jb252b2x2ZSA9IGZ1bmN0aW9uKGtlcm5lbCkge1xuICAgIHZhciB4LCB5LCBreCwga3ksIGtTaXplID0gKGtlcm5lbC5sZW5ndGggLyAyKSB8IDAsIGFjY3UgPSAwO1xuICAgIGZvciAoIHkgPSAwOyB5IDwgdGhpcy5zaXplLnk7IHkrKykge1xuICAgICAgICBmb3IgKCB4ID0gMDsgeCA8IHRoaXMuc2l6ZS54OyB4KyspIHtcbiAgICAgICAgICAgIGFjY3UgPSAwO1xuICAgICAgICAgICAgZm9yICgga3kgPSAta1NpemU7IGt5IDw9IGtTaXplOyBreSsrKSB7XG4gICAgICAgICAgICAgICAgZm9yICgga3ggPSAta1NpemU7IGt4IDw9IGtTaXplOyBreCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjY3UgKz0ga2VybmVsW2t5ICsga1NpemVdW2t4ICsga1NpemVdICogdGhpcy5nZXRTYWZlKHggKyBreCwgeSArIGt5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRhdGFbeSAqIHRoaXMuc2l6ZS54ICsgeF0gPSBhY2N1O1xuICAgICAgICB9XG4gICAgfVxufTtcblxuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5tb21lbnRzID0gZnVuY3Rpb24obGFiZWxjb3VudCkge1xuICAgIHZhciBkYXRhID0gdGhpcy5kYXRhLFxuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBoZWlnaHQgPSB0aGlzLnNpemUueSxcbiAgICAgICAgd2lkdGggPSB0aGlzLnNpemUueCxcbiAgICAgICAgdmFsLFxuICAgICAgICB5c3EsXG4gICAgICAgIGxhYmVsc3VtID0gW10sXG4gICAgICAgIGksXG4gICAgICAgIGxhYmVsLFxuICAgICAgICBtdTExLFxuICAgICAgICBtdTAyLFxuICAgICAgICBtdTIwLFxuICAgICAgICB4XyxcbiAgICAgICAgeV8sXG4gICAgICAgIHRtcCxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIFBJID0gTWF0aC5QSSxcbiAgICAgICAgUElfNCA9IFBJIC8gNDtcblxuICAgIGlmIChsYWJlbGNvdW50IDw9IDApIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IGxhYmVsY291bnQ7IGkrKykge1xuICAgICAgICBsYWJlbHN1bVtpXSA9IHtcbiAgICAgICAgICAgIG0wMDogMCxcbiAgICAgICAgICAgIG0wMTogMCxcbiAgICAgICAgICAgIG0xMDogMCxcbiAgICAgICAgICAgIG0xMTogMCxcbiAgICAgICAgICAgIG0wMjogMCxcbiAgICAgICAgICAgIG0yMDogMCxcbiAgICAgICAgICAgIHRoZXRhOiAwLFxuICAgICAgICAgICAgcmFkOiAwXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZm9yICggeSA9IDA7IHkgPCBoZWlnaHQ7IHkrKykge1xuICAgICAgICB5c3EgPSB5ICogeTtcbiAgICAgICAgZm9yICggeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7XG4gICAgICAgICAgICB2YWwgPSBkYXRhW3kgKiB3aWR0aCArIHhdO1xuICAgICAgICAgICAgaWYgKHZhbCA+IDApIHtcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGxhYmVsc3VtW3ZhbCAtIDFdO1xuICAgICAgICAgICAgICAgIGxhYmVsLm0wMCArPSAxO1xuICAgICAgICAgICAgICAgIGxhYmVsLm0wMSArPSB5O1xuICAgICAgICAgICAgICAgIGxhYmVsLm0xMCArPSB4O1xuICAgICAgICAgICAgICAgIGxhYmVsLm0xMSArPSB4ICogeTtcbiAgICAgICAgICAgICAgICBsYWJlbC5tMDIgKz0geXNxO1xuICAgICAgICAgICAgICAgIGxhYmVsLm0yMCArPSB4ICogeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoIGkgPSAwOyBpIDwgbGFiZWxjb3VudDsgaSsrKSB7XG4gICAgICAgIGxhYmVsID0gbGFiZWxzdW1baV07XG4gICAgICAgIGlmICghaXNOYU4obGFiZWwubTAwKSAmJiBsYWJlbC5tMDAgIT09IDApIHtcbiAgICAgICAgICAgIHhfID0gbGFiZWwubTEwIC8gbGFiZWwubTAwO1xuICAgICAgICAgICAgeV8gPSBsYWJlbC5tMDEgLyBsYWJlbC5tMDA7XG4gICAgICAgICAgICBtdTExID0gbGFiZWwubTExIC8gbGFiZWwubTAwIC0geF8gKiB5XztcbiAgICAgICAgICAgIG11MDIgPSBsYWJlbC5tMDIgLyBsYWJlbC5tMDAgLSB5XyAqIHlfO1xuICAgICAgICAgICAgbXUyMCA9IGxhYmVsLm0yMCAvIGxhYmVsLm0wMCAtIHhfICogeF87XG4gICAgICAgICAgICB0bXAgPSAobXUwMiAtIG11MjApIC8gKDIgKiBtdTExKTtcbiAgICAgICAgICAgIHRtcCA9IDAuNSAqIE1hdGguYXRhbih0bXApICsgKG11MTEgPj0gMCA/IFBJXzQgOiAtUElfNCApICsgUEk7XG4gICAgICAgICAgICBsYWJlbC50aGV0YSA9ICh0bXAgKiAxODAgLyBQSSArIDkwKSAlIDE4MCAtIDkwO1xuICAgICAgICAgICAgaWYgKGxhYmVsLnRoZXRhIDwgMCkge1xuICAgICAgICAgICAgICAgIGxhYmVsLnRoZXRhICs9IDE4MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhYmVsLnJhZCA9IHRtcCA+IFBJID8gdG1wIC0gUEkgOiB0bXA7XG4gICAgICAgICAgICBsYWJlbC52ZWMgPSB2ZWMyLmNsb25lKFtNYXRoLmNvcyh0bXApLCBNYXRoLnNpbih0bXApXSk7XG4gICAgICAgICAgICByZXN1bHQucHVzaChsYWJlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBEaXNwbGF5cyB0aGUge0ltYWdlV3JhcHBlcn0gaW4gYSBnaXZlbiBjYW52YXNcbiAqIEBwYXJhbSBjYW52YXMge0NhbnZhc30gVGhlIGNhbnZhcyBlbGVtZW50IHRvIHdyaXRlIHRvXG4gKiBAcGFyYW0gc2NhbGUge051bWJlcn0gU2NhbGUgd2hpY2ggaXMgYXBwbGllZCB0byBlYWNoIHBpeGVsLXZhbHVlXG4gKi9cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKGNhbnZhcywgc2NhbGUpIHtcbiAgICB2YXIgY3R4LFxuICAgICAgICBmcmFtZSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgcGl4ZWwsXG4gICAgICAgIHgsXG4gICAgICAgIHk7XG5cbiAgICBpZiAoIXNjYWxlKSB7XG4gICAgICAgIHNjYWxlID0gMS4wO1xuICAgIH1cbiAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjYW52YXMud2lkdGggPSB0aGlzLnNpemUueDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy5zaXplLnk7XG4gICAgZnJhbWUgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgZGF0YSA9IGZyYW1lLmRhdGE7XG4gICAgY3VycmVudCA9IDA7XG4gICAgZm9yICh5ID0gMDsgeSA8IHRoaXMuc2l6ZS55OyB5KyspIHtcbiAgICAgICAgZm9yICh4ID0gMDsgeCA8IHRoaXMuc2l6ZS54OyB4KyspIHtcbiAgICAgICAgICAgIHBpeGVsID0geSAqIHRoaXMuc2l6ZS54ICsgeDtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmdldCh4LCB5KSAqIHNjYWxlO1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAwXSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBkYXRhW3BpeGVsICogNCArIDFdID0gY3VycmVudDtcbiAgICAgICAgICAgIGRhdGFbcGl4ZWwgKiA0ICsgMl0gPSBjdXJyZW50O1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAzXSA9IDI1NTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL2ZyYW1lLmRhdGEgPSBkYXRhO1xuICAgIGN0eC5wdXRJbWFnZURhdGEoZnJhbWUsIDAsIDApO1xufTtcblxuLyoqXG4gKiBEaXNwbGF5cyB0aGUge1N1YkltYWdlfSBpbiBhIGdpdmVuIGNhbnZhc1xuICogQHBhcmFtIGNhbnZhcyB7Q2FudmFzfSBUaGUgY2FudmFzIGVsZW1lbnQgdG8gd3JpdGUgdG9cbiAqIEBwYXJhbSBzY2FsZSB7TnVtYmVyfSBTY2FsZSB3aGljaCBpcyBhcHBsaWVkIHRvIGVhY2ggcGl4ZWwtdmFsdWVcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5vdmVybGF5ID0gZnVuY3Rpb24oY2FudmFzLCBzY2FsZSwgZnJvbSkge1xuICAgIGlmICghc2NhbGUgfHwgc2NhbGUgPCAwIHx8IHNjYWxlID4gMzYwKSB7XG4gICAgICAgIHNjYWxlID0gMzYwO1xuICAgIH1cbiAgICB2YXIgaHN2ID0gWzAsIDEsIDFdO1xuICAgIHZhciByZ2IgPSBbMCwgMCwgMF07XG4gICAgdmFyIHdoaXRlUmdiID0gWzI1NSwgMjU1LCAyNTVdO1xuICAgIHZhciBibGFja1JnYiA9IFswLCAwLCAwXTtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHZhciBmcmFtZSA9IGN0eC5nZXRJbWFnZURhdGEoZnJvbS54LCBmcm9tLnksIHRoaXMuc2l6ZS54LCB0aGlzLnNpemUueSk7XG4gICAgdmFyIGRhdGEgPSBmcmFtZS5kYXRhO1xuICAgIHZhciBsZW5ndGggPSB0aGlzLmRhdGEubGVuZ3RoO1xuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBoc3ZbMF0gPSB0aGlzLmRhdGFbbGVuZ3RoXSAqIHNjYWxlO1xuICAgICAgICByZXN1bHQgPSBoc3ZbMF0gPD0gMCA/IHdoaXRlUmdiIDogaHN2WzBdID49IDM2MCA/IGJsYWNrUmdiIDogaHN2MnJnYihoc3YsIHJnYik7XG4gICAgICAgIGRhdGFbbGVuZ3RoICogNCArIDBdID0gcmVzdWx0WzBdO1xuICAgICAgICBkYXRhW2xlbmd0aCAqIDQgKyAxXSA9IHJlc3VsdFsxXTtcbiAgICAgICAgZGF0YVtsZW5ndGggKiA0ICsgMl0gPSByZXN1bHRbMl07XG4gICAgICAgIGRhdGFbbGVuZ3RoICogNCArIDNdID0gMjU1O1xuICAgIH1cbiAgICBjdHgucHV0SW1hZ2VEYXRhKGZyYW1lLCBmcm9tLngsIGZyb20ueSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVdyYXBwZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvY29tbW9uL2ltYWdlX3dyYXBwZXIuanMiLCJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VBc3NpZ25WYWx1ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VJc05hdGl2ZSA9IHJlcXVpcmUoJy4vX2Jhc2VJc05hdGl2ZScpLFxuICAgIGdldFZhbHVlID0gcmVxdWlyZSgnLi9fZ2V0VmFsdWUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXROYXRpdmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19nZXROYXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGtleSBpZiBpdCdzIG5vdCBhIHN0cmluZyBvciBzeW1ib2wuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfHN5bWJvbH0gUmV0dXJucyB0aGUga2V5LlxuICovXG5mdW5jdGlvbiB0b0tleSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9LZXk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL190b0tleS5qc1xuLy8gbW9kdWxlIGlkID0gMjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gKiBlcXVhbCB0byBgMGAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheUxpa2U7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzQXJyYXlMaWtlLmpzXG4vLyBtb2R1bGUgaWQgPSAyNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bmN0aW9uO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9pc0Z1bmN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSAyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNMZW5ndGg7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzTGVuZ3RoLmpzXG4vLyBtb2R1bGUgaWQgPSAyNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzU3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZU1lcmdlID0gcmVxdWlyZSgnLi9fYmFzZU1lcmdlJyksXG4gICAgY3JlYXRlQXNzaWduZXIgPSByZXF1aXJlKCcuL19jcmVhdGVBc3NpZ25lcicpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBtZXJnZXMgb3duIGFuZFxuICogaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgaW50byB0aGVcbiAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIHByb3BlcnRpZXMgdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGFyZVxuICogc2tpcHBlZCBpZiBhIGRlc3RpbmF0aW9uIHZhbHVlIGV4aXN0cy4gQXJyYXkgYW5kIHBsYWluIG9iamVjdCBwcm9wZXJ0aWVzXG4gKiBhcmUgbWVyZ2VkIHJlY3Vyc2l2ZWx5LiBPdGhlciBvYmplY3RzIGFuZCB2YWx1ZSB0eXBlcyBhcmUgb3ZlcnJpZGRlbiBieVxuICogYXNzaWdubWVudC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LiBTdWJzZXF1ZW50XG4gKiBzb3VyY2VzIG92ZXJ3cml0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyBzb3VyY2VzLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC41LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHtcbiAqICAgJ2EnOiBbeyAnYic6IDIgfSwgeyAnZCc6IDQgfV1cbiAqIH07XG4gKlxuICogdmFyIG90aGVyID0ge1xuICogICAnYSc6IFt7ICdjJzogMyB9LCB7ICdlJzogNSB9XVxuICogfTtcbiAqXG4gKiBfLm1lcmdlKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4geyAnYSc6IFt7ICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2QnOiA0LCAnZSc6IDUgfV0gfVxuICovXG52YXIgbWVyZ2UgPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpIHtcbiAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBtZXJnZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvbWVyZ2UuanNcbi8vIG1vZHVsZSBpZCA9IDI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obW9kdWxlKSB7XHJcblx0aWYoIW1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcclxuXHRcdG1vZHVsZS5kZXByZWNhdGUgPSBmdW5jdGlvbigpIHt9O1xyXG5cdFx0bW9kdWxlLnBhdGhzID0gW107XHJcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcclxuXHRcdGlmKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xyXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcclxuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XHJcblx0fVxyXG5cdHJldHVybiBtb2R1bGU7XHJcbn07XHJcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vICh3ZWJwYWNrKS9idWlsZGluL21vZHVsZS5qc1xuLy8gbW9kdWxlIGlkID0gMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBodHRwOi8vd3d3LmNvZGVwcm9qZWN0LmNvbS9UaXBzLzQwNzE3Mi9Db25uZWN0ZWQtQ29tcG9uZW50LUxhYmVsaW5nLWFuZC1WZWN0b3JpemF0aW9uXG4gKi9cbnZhciBUcmFjZXIgPSB7XG4gICAgc2VhcmNoRGlyZWN0aW9uczogW1swLCAxXSwgWzEsIDFdLCBbMSwgMF0sIFsxLCAtMV0sIFswLCAtMV0sIFstMSwgLTFdLCBbLTEsIDBdLCBbLTEsIDFdXSxcbiAgICBjcmVhdGU6IGZ1bmN0aW9uKGltYWdlV3JhcHBlciwgbGFiZWxXcmFwcGVyKSB7XG4gICAgICAgIHZhciBpbWFnZURhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgICAgIGxhYmVsRGF0YSA9IGxhYmVsV3JhcHBlci5kYXRhLFxuICAgICAgICAgICAgc2VhcmNoRGlyZWN0aW9ucyA9IHRoaXMuc2VhcmNoRGlyZWN0aW9ucyxcbiAgICAgICAgICAgIHdpZHRoID0gaW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgICAgIHBvcztcblxuICAgICAgICBmdW5jdGlvbiB0cmFjZShjdXJyZW50LCBjb2xvciwgbGFiZWwsIGVkZ2VsYWJlbCkge1xuICAgICAgICAgICAgdmFyIGksXG4gICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICB4O1xuXG4gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgICAgIHkgPSBjdXJyZW50LmN5ICsgc2VhcmNoRGlyZWN0aW9uc1tjdXJyZW50LmRpcl1bMF07XG4gICAgICAgICAgICAgICAgeCA9IGN1cnJlbnQuY3ggKyBzZWFyY2hEaXJlY3Rpb25zW2N1cnJlbnQuZGlyXVsxXTtcbiAgICAgICAgICAgICAgICBwb3MgPSB5ICogd2lkdGggKyB4O1xuICAgICAgICAgICAgICAgIGlmICgoaW1hZ2VEYXRhW3Bvc10gPT09IGNvbG9yKSAmJiAoKGxhYmVsRGF0YVtwb3NdID09PSAwKSB8fCAobGFiZWxEYXRhW3Bvc10gPT09IGxhYmVsKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxEYXRhW3Bvc10gPSBsYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudC5jeSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuY3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWxEYXRhW3Bvc10gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsRGF0YVtwb3NdID0gZWRnZWxhYmVsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuZGlyID0gKGN1cnJlbnQuZGlyICsgMSkgJSA4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHZlcnRleDJEKHgsIHksIGRpcikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkaXI6IGRpcixcbiAgICAgICAgICAgICAgICB4OiB4LFxuICAgICAgICAgICAgICAgIHk6IHksXG4gICAgICAgICAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgICAgICAgICAgICBwcmV2OiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gY29udG91clRyYWNpbmcoc3ksIHN4LCBsYWJlbCwgY29sb3IsIGVkZ2VsYWJlbCkge1xuICAgICAgICAgICAgdmFyIEZ2ID0gbnVsbCxcbiAgICAgICAgICAgICAgICBDdixcbiAgICAgICAgICAgICAgICBQLFxuICAgICAgICAgICAgICAgIGxkaXIsXG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY3g6IHN4LFxuICAgICAgICAgICAgICAgICAgICBjeTogc3ksXG4gICAgICAgICAgICAgICAgICAgIGRpcjogMFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmICh0cmFjZShjdXJyZW50LCBjb2xvciwgbGFiZWwsIGVkZ2VsYWJlbCkpIHtcbiAgICAgICAgICAgICAgICBGdiA9IHZlcnRleDJEKHN4LCBzeSwgY3VycmVudC5kaXIpO1xuICAgICAgICAgICAgICAgIEN2ID0gRnY7XG4gICAgICAgICAgICAgICAgbGRpciA9IGN1cnJlbnQuZGlyO1xuICAgICAgICAgICAgICAgIFAgPSB2ZXJ0ZXgyRChjdXJyZW50LmN4LCBjdXJyZW50LmN5LCAwKTtcbiAgICAgICAgICAgICAgICBQLnByZXYgPSBDdjtcbiAgICAgICAgICAgICAgICBDdi5uZXh0ID0gUDtcbiAgICAgICAgICAgICAgICBQLm5leHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIEN2ID0gUDtcbiAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuZGlyID0gKGN1cnJlbnQuZGlyICsgNikgJSA4O1xuICAgICAgICAgICAgICAgICAgICB0cmFjZShjdXJyZW50LCBjb2xvciwgbGFiZWwsIGVkZ2VsYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsZGlyICE9PSBjdXJyZW50LmRpcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgQ3YuZGlyID0gY3VycmVudC5kaXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBQID0gdmVydGV4MkQoY3VycmVudC5jeCwgY3VycmVudC5jeSwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBQLnByZXYgPSBDdjtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2Lm5leHQgPSBQO1xuICAgICAgICAgICAgICAgICAgICAgICAgUC5uZXh0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2ID0gUDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2LmRpciA9IGxkaXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBDdi54ID0gY3VycmVudC5jeDtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2LnkgPSBjdXJyZW50LmN5O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxkaXIgPSBjdXJyZW50LmRpcjtcbiAgICAgICAgICAgICAgICB9IHdoaWxlIChjdXJyZW50LmN4ICE9PSBzeCB8fCBjdXJyZW50LmN5ICE9PSBzeSk7XG4gICAgICAgICAgICAgICAgRnYucHJldiA9IEN2LnByZXY7XG4gICAgICAgICAgICAgICAgQ3YucHJldi5uZXh0ID0gRnY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gRnY7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJhY2U6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbG9yLCBsYWJlbCwgZWRnZWxhYmVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlKGN1cnJlbnQsIGNvbG9yLCBsYWJlbCwgZWRnZWxhYmVsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb250b3VyVHJhY2luZzogZnVuY3Rpb24oc3ksIHN4LCBsYWJlbCwgY29sb3IsIGVkZ2VsYWJlbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250b3VyVHJhY2luZyhzeSwgc3gsIGxhYmVsLCBjb2xvciwgZWRnZWxhYmVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoVHJhY2VyKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhdG9yL3RyYWNlci5qcyIsImltcG9ydCBCYXJjb2RlUmVhZGVyIGZyb20gJy4vYmFyY29kZV9yZWFkZXInO1xuaW1wb3J0IEFycmF5SGVscGVyIGZyb20gJy4uL2NvbW1vbi9hcnJheV9oZWxwZXInO1xuXG5mdW5jdGlvbiBDb2RlMzlSZWFkZXIoKSB7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBBTFBIQUJFVEhfU1RSSU5HOiB7dmFsdWU6IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLS4gKiQvKyVcIn0sXG4gICAgQUxQSEFCRVQ6IHt2YWx1ZTogWzQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsXG4gICAgICAgIDc5LCA4MCwgODEsIDgyLCA4MywgODQsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDQ1LCA0NiwgMzIsIDQyLCAzNiwgNDcsIDQzLCAzN119LFxuICAgIENIQVJBQ1RFUl9FTkNPRElOR1M6IHt2YWx1ZTogWzB4MDM0LCAweDEyMSwgMHgwNjEsIDB4MTYwLCAweDAzMSwgMHgxMzAsIDB4MDcwLCAweDAyNSwgMHgxMjQsIDB4MDY0LCAweDEwOSwgMHgwNDksXG4gICAgICAgIDB4MTQ4LCAweDAxOSwgMHgxMTgsIDB4MDU4LCAweDAwRCwgMHgxMEMsIDB4MDRDLCAweDAxQywgMHgxMDMsIDB4MDQzLCAweDE0MiwgMHgwMTMsIDB4MTEyLCAweDA1MiwgMHgwMDcsIDB4MTA2LFxuICAgICAgICAweDA0NiwgMHgwMTYsIDB4MTgxLCAweDBDMSwgMHgxQzAsIDB4MDkxLCAweDE5MCwgMHgwRDAsIDB4MDg1LCAweDE4NCwgMHgwQzQsIDB4MDk0LCAweDBBOCwgMHgwQTIsIDB4MDhBLCAweDAyQVxuICAgIF19LFxuICAgIEFTVEVSSVNLOiB7dmFsdWU6IDB4MDk0fSxcbiAgICBGT1JNQVQ6IHt2YWx1ZTogXCJjb2RlXzM5XCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5Db2RlMzlSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5Db2RlMzlSZWFkZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gQ29kZTM5UmVhZGVyO1xuXG5Db2RlMzlSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvdW50ZXJzID0gWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLFxuICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgc3RhcnQgPSBzZWxmLl9maW5kU3RhcnQoKSxcbiAgICAgICAgZGVjb2RlZENoYXIsXG4gICAgICAgIGxhc3RTdGFydCxcbiAgICAgICAgcGF0dGVybixcbiAgICAgICAgbmV4dFN0YXJ0O1xuXG4gICAgaWYgKCFzdGFydCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgbmV4dFN0YXJ0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3csIHN0YXJ0LmVuZCk7XG5cbiAgICBkbyB7XG4gICAgICAgIGNvdW50ZXJzID0gc2VsZi5fdG9Db3VudGVycyhuZXh0U3RhcnQsIGNvdW50ZXJzKTtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX3RvUGF0dGVybihjb3VudGVycyk7XG4gICAgICAgIGlmIChwYXR0ZXJuIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENoYXIgPSBzZWxmLl9wYXR0ZXJuVG9DaGFyKHBhdHRlcm4pO1xuICAgICAgICBpZiAoZGVjb2RlZENoYXIgPCAwKXtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5wdXNoKGRlY29kZWRDaGFyKTtcbiAgICAgICAgbGFzdFN0YXJ0ID0gbmV4dFN0YXJ0O1xuICAgICAgICBuZXh0U3RhcnQgKz0gQXJyYXlIZWxwZXIuc3VtKGNvdW50ZXJzKTtcbiAgICAgICAgbmV4dFN0YXJ0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3csIG5leHRTdGFydCk7XG4gICAgfSB3aGlsZSAoZGVjb2RlZENoYXIgIT09ICcqJyk7XG4gICAgcmVzdWx0LnBvcCgpO1xuXG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghc2VsZi5fdmVyaWZ5VHJhaWxpbmdXaGl0ZXNwYWNlKGxhc3RTdGFydCwgbmV4dFN0YXJ0LCBjb3VudGVycykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydC5zdGFydCxcbiAgICAgICAgZW5kOiBuZXh0U3RhcnQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnQsXG4gICAgICAgIGRlY29kZWRDb2RlczogcmVzdWx0XG4gICAgfTtcbn07XG5cbkNvZGUzOVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGxhc3RTdGFydCwgbmV4dFN0YXJ0LCBjb3VudGVycykge1xuICAgIHZhciB0cmFpbGluZ1doaXRlc3BhY2VFbmQsXG4gICAgICAgIHBhdHRlcm5TaXplID0gQXJyYXlIZWxwZXIuc3VtKGNvdW50ZXJzKTtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IG5leHRTdGFydCAtIGxhc3RTdGFydCAtIHBhdHRlcm5TaXplO1xuICAgIGlmICgodHJhaWxpbmdXaGl0ZXNwYWNlRW5kICogMykgPj0gcGF0dGVyblNpemUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbkNvZGUzOVJlYWRlci5wcm90b3R5cGUuX3BhdHRlcm5Ub0NoYXIgPSBmdW5jdGlvbihwYXR0ZXJuKSB7XG4gICAgdmFyIGksXG4gICAgICAgIHNlbGYgPSB0aGlzO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHNlbGYuQ0hBUkFDVEVSX0VOQ09ESU5HUy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTW2ldID09PSBwYXR0ZXJuKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShzZWxmLkFMUEhBQkVUW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59O1xuXG5Db2RlMzlSZWFkZXIucHJvdG90eXBlLl9maW5kTmV4dFdpZHRoID0gZnVuY3Rpb24oY291bnRlcnMsIGN1cnJlbnQpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbWluV2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGNvdW50ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChjb3VudGVyc1tpXSA8IG1pbldpZHRoICYmIGNvdW50ZXJzW2ldID4gY3VycmVudCkge1xuICAgICAgICAgICAgbWluV2lkdGggPSBjb3VudGVyc1tpXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtaW5XaWR0aDtcbn07XG5cbkNvZGUzOVJlYWRlci5wcm90b3R5cGUuX3RvUGF0dGVybiA9IGZ1bmN0aW9uKGNvdW50ZXJzKSB7XG4gICAgdmFyIG51bUNvdW50ZXJzID0gY291bnRlcnMubGVuZ3RoLFxuICAgICAgICBtYXhOYXJyb3dXaWR0aCA9IDAsXG4gICAgICAgIG51bVdpZGVCYXJzID0gbnVtQ291bnRlcnMsXG4gICAgICAgIHdpZGVCYXJXaWR0aCA9IDAsXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBwYXR0ZXJuLFxuICAgICAgICBpO1xuXG4gICAgd2hpbGUgKG51bVdpZGVCYXJzID4gMykge1xuICAgICAgICBtYXhOYXJyb3dXaWR0aCA9IHNlbGYuX2ZpbmROZXh0V2lkdGgoY291bnRlcnMsIG1heE5hcnJvd1dpZHRoKTtcbiAgICAgICAgbnVtV2lkZUJhcnMgPSAwO1xuICAgICAgICBwYXR0ZXJuID0gMDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bUNvdW50ZXJzOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyc1tpXSA+IG1heE5hcnJvd1dpZHRoKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiB8PSAxIDw8IChudW1Db3VudGVycyAtIDEgLSBpKTtcbiAgICAgICAgICAgICAgICBudW1XaWRlQmFycysrO1xuICAgICAgICAgICAgICAgIHdpZGVCYXJXaWR0aCArPSBjb3VudGVyc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1XaWRlQmFycyA9PT0gMykge1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bUNvdW50ZXJzICYmIG51bVdpZGVCYXJzID4gMDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ZXJzW2ldID4gbWF4TmFycm93V2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtV2lkZUJhcnMtLTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChjb3VudGVyc1tpXSAqIDIpID49IHdpZGVCYXJXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBhdHRlcm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xufTtcblxuQ29kZTM5UmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIHBhdHRlcm5TdGFydCA9IG9mZnNldCxcbiAgICAgICAgY291bnRlciA9IFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSxcbiAgICAgICAgY291bnRlclBvcyA9IDAsXG4gICAgICAgIGlzV2hpdGUgPSBmYWxzZSxcbiAgICAgICAgaSxcbiAgICAgICAgaixcbiAgICAgICAgd2hpdGVTcGFjZU11c3RTdGFydDtcblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAvLyBmaW5kIHN0YXJ0IHBhdHRlcm5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5fdG9QYXR0ZXJuKGNvdW50ZXIpID09PSBzZWxmLkFTVEVSSVNLKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2VNdXN0U3RhcnQgPSBNYXRoLmZsb29yKE1hdGgubWF4KDAsIHBhdHRlcm5TdGFydCAtICgoaSAtIHBhdHRlcm5TdGFydCkgLyA0KSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5fbWF0Y2hSYW5nZSh3aGl0ZVNwYWNlTXVzdFN0YXJ0LCBwYXR0ZXJuU3RhcnQsIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBwYXR0ZXJuU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBpXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGF0dGVyblN0YXJ0ICs9IGNvdW50ZXJbMF0gKyBjb3VudGVyWzFdO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgNzsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbal0gPSBjb3VudGVyW2ogKyAyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291bnRlcls3XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlcls4XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGUzOVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvY29kZV8zOV9yZWFkZXIuanMiLCJtb2R1bGUuZXhwb3J0cyA9IGRvdFxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWMyJ3NcbiAqXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmRcbiAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmRcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGJcbiAqL1xuZnVuY3Rpb24gZG90KGEsIGIpIHtcbiAgICByZXR1cm4gYVswXSAqIGJbMF0gKyBhWzFdICogYlsxXVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9nbC12ZWMyL2RvdC5qc1xuLy8gbW9kdWxlIGlkID0gMzJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpLFxuICAgIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1hcDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX01hcC5qc1xuLy8gbW9kdWxlIGlkID0gMzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIG1hcENhY2hlQ2xlYXIgPSByZXF1aXJlKCcuL19tYXBDYWNoZUNsZWFyJyksXG4gICAgbWFwQ2FjaGVEZWxldGUgPSByZXF1aXJlKCcuL19tYXBDYWNoZURlbGV0ZScpLFxuICAgIG1hcENhY2hlR2V0ID0gcmVxdWlyZSgnLi9fbWFwQ2FjaGVHZXQnKSxcbiAgICBtYXBDYWNoZUhhcyA9IHJlcXVpcmUoJy4vX21hcENhY2hlSGFzJyksXG4gICAgbWFwQ2FjaGVTZXQgPSByZXF1aXJlKCcuL19tYXBDYWNoZVNldCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXAgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTWFwQ2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgTWFwQ2FjaGVgLlxuTWFwQ2FjaGUucHJvdG90eXBlLmNsZWFyID0gbWFwQ2FjaGVDbGVhcjtcbk1hcENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBtYXBDYWNoZURlbGV0ZTtcbk1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbk1hcENhY2hlLnByb3RvdHlwZS5oYXMgPSBtYXBDYWNoZUhhcztcbk1hcENhY2hlLnByb3RvdHlwZS5zZXQgPSBtYXBDYWNoZVNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBNYXBDYWNoZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX01hcENhY2hlLmpzXG4vLyBtb2R1bGUgaWQgPSAzNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYmFzZUFzc2lnblZhbHVlJyksXG4gICAgZXEgPSByZXF1aXJlKCcuL2VxJyk7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhc3NpZ25WYWx1ZWAgZXhjZXB0IHRoYXQgaXQgZG9lc24ndCBhc3NpZ25cbiAqIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWVxKG9iamVjdFtrZXldLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXNzaWduTWVyZ2VWYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Fzc2lnbk1lcmdlVmFsdWUuanNcbi8vIG1vZHVsZSBpZCA9IDM1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlQXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19iYXNlQXNzaWduVmFsdWUnKSxcbiAgICBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Fzc2lnblZhbHVlLmpzXG4vLyBtb2R1bGUgaWQgPSAzNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9fZ2V0TmF0aXZlJyk7XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICB2YXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QsICdkZWZpbmVQcm9wZXJ0eScpO1xuICAgIGZ1bmMoe30sICcnLCB7fSk7XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlZmluZVByb3BlcnR5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fZGVmaW5lUHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDM3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbm1vZHVsZS5leHBvcnRzID0gZnJlZUdsb2JhbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2ZyZWVHbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBvdmVyQXJnID0gcmVxdWlyZSgnLi9fb3ZlckFyZycpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRQcm90b3R5cGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19nZXRQcm90b3R5cGUuanNcbi8vIG1vZHVsZSBpZCA9IDM5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1Byb3RvdHlwZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2lzUHJvdG90eXBlLmpzXG4vLyBtb2R1bGUgaWQgPSA0MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXBwbHkgPSByZXF1aXJlKCcuL19hcHBseScpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgcmVzdCBhcnJheSB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlclJlc3QoZnVuYywgc3RhcnQsIHRyYW5zZm9ybSkge1xuICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICBhcnJheSA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICB9XG4gICAgaW5kZXggPSAtMTtcbiAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcbiAgICB3aGlsZSAoKytpbmRleCA8IHN0YXJ0KSB7XG4gICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgfVxuICAgIG90aGVyQXJnc1tzdGFydF0gPSB0cmFuc2Zvcm0oYXJyYXkpO1xuICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG92ZXJSZXN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fb3ZlclJlc3QuanNcbi8vIG1vZHVsZSBpZCA9IDQxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlU2V0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19iYXNlU2V0VG9TdHJpbmcnKSxcbiAgICBzaG9ydE91dCA9IHJlcXVpcmUoJy4vX3Nob3J0T3V0Jyk7XG5cbi8qKlxuICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBzZXRUb1N0cmluZyA9IHNob3J0T3V0KGJhc2VTZXRUb1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0VG9TdHJpbmc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zZXRUb1N0cmluZy5qc1xuLy8gbW9kdWxlIGlkID0gNDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBpdCByZWNlaXZlcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBBbnkgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyBgdmFsdWVgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqXG4gKiBjb25zb2xlLmxvZyhfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpZGVudGl0eTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaWRlbnRpdHkuanNcbi8vIG1vZHVsZSBpZCA9IDQzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpLFxuICAgIHN0dWJGYWxzZSA9IHJlcXVpcmUoJy4vc3R1YkZhbHNlJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0J1ZmZlcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNCdWZmZXIuanNcbi8vIG1vZHVsZSBpZCA9IDQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlSXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9fYmFzZUlzVHlwZWRBcnJheScpLFxuICAgIGJhc2VVbmFyeSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmFyeScpLFxuICAgIG5vZGVVdGlsID0gcmVxdWlyZSgnLi9fbm9kZVV0aWwnKTtcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNUeXBlZEFycmF5ID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNUeXBlZEFycmF5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShbXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNUeXBlZEFycmF5ID0gbm9kZUlzVHlwZWRBcnJheSA/IGJhc2VVbmFyeShub2RlSXNUeXBlZEFycmF5KSA6IGJhc2VJc1R5cGVkQXJyYXk7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNUeXBlZEFycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9pc1R5cGVkQXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDQ1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBhcnJheUxpa2VLZXlzID0gcmVxdWlyZSgnLi9fYXJyYXlMaWtlS2V5cycpLFxuICAgIGJhc2VLZXlzSW4gPSByZXF1aXJlKCcuL19iYXNlS2V5c0luJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGtleXNJbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gva2V5c0luLmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZztcclxuXHJcbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXHJcbmcgPSAoZnVuY3Rpb24oKSB7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn0pKCk7XHJcblxyXG50cnkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxyXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSxldmFsKShcInRoaXNcIik7XHJcbn0gY2F0Y2goZSkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXHJcblx0aWYodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIilcclxuXHRcdGcgPSB3aW5kb3c7XHJcbn1cclxuXHJcbi8vIGcgY2FuIHN0aWxsIGJlIHVuZGVmaW5lZCwgYnV0IG5vdGhpbmcgdG8gZG8gYWJvdXQgaXQuLi5cclxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3NcclxuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBnO1xyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAod2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDQ3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImltcG9ydCBUeXBlRGVmcyBmcm9tICcuL2NvbW1vbi90eXBlZGVmcyc7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbmltcG9ydCBJbWFnZVdyYXBwZXIgZnJvbSAnLi9jb21tb24vaW1hZ2Vfd3JhcHBlcic7XG5pbXBvcnQgQmFyY29kZUxvY2F0b3IgZnJvbSAnLi9sb2NhdG9yL2JhcmNvZGVfbG9jYXRvcic7XG5pbXBvcnQgQmFyY29kZURlY29kZXIgZnJvbSAnLi9kZWNvZGVyL2JhcmNvZGVfZGVjb2Rlcic7XG5pbXBvcnQgRXZlbnRzIGZyb20gJy4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgQ2FtZXJhQWNjZXNzIGZyb20gJy4vaW5wdXQvY2FtZXJhX2FjY2Vzcyc7XG5pbXBvcnQgSW1hZ2VEZWJ1ZyBmcm9tICcuL2NvbW1vbi9pbWFnZV9kZWJ1Zyc7XG5pbXBvcnQgUmVzdWx0Q29sbGVjdG9yIGZyb20gJy4vYW5hbHl0aWNzL3Jlc3VsdF9jb2xsZWN0b3InO1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy9jb25maWcnO1xuaW1wb3J0IElucHV0U3RyZWFtIGZyb20gJ2lucHV0X3N0cmVhbSc7XG5pbXBvcnQgRnJhbWVHcmFiYmVyIGZyb20gJ2ZyYW1lX2dyYWJiZXInO1xuaW1wb3J0IHttZXJnZX0gZnJvbSAnbG9kYXNoJztcbmNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKVxufTtcblxudmFyIF9pbnB1dFN0cmVhbSxcbiAgICBfZnJhbWVncmFiYmVyLFxuICAgIF9zdG9wcGVkLFxuICAgIF9jYW52YXNDb250YWluZXIgPSB7XG4gICAgICAgIGN0eDoge1xuICAgICAgICAgICAgaW1hZ2U6IG51bGwsXG4gICAgICAgICAgICBvdmVybGF5OiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIGRvbToge1xuICAgICAgICAgICAgaW1hZ2U6IG51bGwsXG4gICAgICAgICAgICBvdmVybGF5OiBudWxsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIF9pbnB1dEltYWdlV3JhcHBlcixcbiAgICBfYm94U2l6ZSxcbiAgICBfZGVjb2RlcixcbiAgICBfd29ya2VyUG9vbCA9IFtdLFxuICAgIF9vblVJVGhyZWFkID0gdHJ1ZSxcbiAgICBfcmVzdWx0Q29sbGVjdG9yLFxuICAgIF9jb25maWcgPSB7fTtcblxuZnVuY3Rpb24gaW5pdGlhbGl6ZURhdGEoaW1hZ2VXcmFwcGVyKSB7XG4gICAgaW5pdEJ1ZmZlcnMoaW1hZ2VXcmFwcGVyKTtcbiAgICBfZGVjb2RlciA9IEJhcmNvZGVEZWNvZGVyLmNyZWF0ZShfY29uZmlnLmRlY29kZXIsIF9pbnB1dEltYWdlV3JhcHBlcik7XG59XG5cbmZ1bmN0aW9uIGluaXRJbnB1dFN0cmVhbShjYikge1xuICAgIHZhciB2aWRlbztcbiAgICBpZiAoX2NvbmZpZy5pbnB1dFN0cmVhbS50eXBlID09PSBcIlZpZGVvU3RyZWFtXCIpIHtcbiAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidmlkZW9cIik7XG4gICAgICAgIF9pbnB1dFN0cmVhbSA9IElucHV0U3RyZWFtLmNyZWF0ZVZpZGVvU3RyZWFtKHZpZGVvKTtcbiAgICB9IGVsc2UgaWYgKF9jb25maWcuaW5wdXRTdHJlYW0udHlwZSA9PT0gXCJJbWFnZVN0cmVhbVwiKSB7XG4gICAgICAgIF9pbnB1dFN0cmVhbSA9IElucHV0U3RyZWFtLmNyZWF0ZUltYWdlU3RyZWFtKCk7XG4gICAgfSBlbHNlIGlmIChfY29uZmlnLmlucHV0U3RyZWFtLnR5cGUgPT09IFwiTGl2ZVN0cmVhbVwiKSB7XG4gICAgICAgIHZhciAkdmlld3BvcnQgPSBnZXRWaWV3UG9ydCgpO1xuICAgICAgICBpZiAoJHZpZXdwb3J0KSB7XG4gICAgICAgICAgICB2aWRlbyA9ICR2aWV3cG9ydC5xdWVyeVNlbGVjdG9yKFwidmlkZW9cIik7XG4gICAgICAgICAgICBpZiAoIXZpZGVvKSB7XG4gICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidmlkZW9cIik7XG4gICAgICAgICAgICAgICAgJHZpZXdwb3J0LmFwcGVuZENoaWxkKHZpZGVvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfaW5wdXRTdHJlYW0gPSBJbnB1dFN0cmVhbS5jcmVhdGVMaXZlU3RyZWFtKHZpZGVvKTtcbiAgICAgICAgQ2FtZXJhQWNjZXNzLnJlcXVlc3QodmlkZW8sIF9jb25maWcuaW5wdXRTdHJlYW0uY29uc3RyYWludHMpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIF9pbnB1dFN0cmVhbS50cmlnZ2VyKFwiY2FucmVjb3JkXCIpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY2IoZXJyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2lucHV0U3RyZWFtLnNldEF0dHJpYnV0ZShcInByZWxvYWRcIiwgXCJhdXRvXCIpO1xuICAgIF9pbnB1dFN0cmVhbS5zZXRJbnB1dFN0cmVhbShfY29uZmlnLmlucHV0U3RyZWFtKTtcbiAgICBfaW5wdXRTdHJlYW0uYWRkRXZlbnRMaXN0ZW5lcihcImNhbnJlY29yZFwiLCBjYW5SZWNvcmQuYmluZCh1bmRlZmluZWQsIGNiKSk7XG59XG5cbmZ1bmN0aW9uIGdldFZpZXdQb3J0KCkge1xuICAgIHZhciB0YXJnZXQgPSBfY29uZmlnLmlucHV0U3RyZWFtLnRhcmdldDtcbiAgICAvLyBDaGVjayBpZiB0YXJnZXQgaXMgYWxyZWFkeSBhIERPTSBlbGVtZW50XG4gICAgaWYgKHRhcmdldCAmJiB0YXJnZXQubm9kZU5hbWUgJiYgdGFyZ2V0Lm5vZGVUeXBlID09PSAxKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlICcjaW50ZXJhY3RpdmUudmlld3BvcnQnIGFzIGEgZmFsbGJhY2sgc2VsZWN0b3IgKGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KVxuICAgICAgICB2YXIgc2VsZWN0b3IgPSB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJyA/IHRhcmdldCA6ICcjaW50ZXJhY3RpdmUudmlld3BvcnQnO1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBjYW5SZWNvcmQoY2IpIHtcbiAgICBCYXJjb2RlTG9jYXRvci5jaGVja0ltYWdlQ29uc3RyYWludHMoX2lucHV0U3RyZWFtLCBfY29uZmlnLmxvY2F0b3IpO1xuICAgIGluaXRDYW52YXMoX2NvbmZpZyk7XG4gICAgX2ZyYW1lZ3JhYmJlciA9IEZyYW1lR3JhYmJlci5jcmVhdGUoX2lucHV0U3RyZWFtLCBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSk7XG5cbiAgICBhZGp1c3RXb3JrZXJQb29sKF9jb25maWcubnVtT2ZXb3JrZXJzLCBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKF9jb25maWcubnVtT2ZXb3JrZXJzID09PSAwKSB7XG4gICAgICAgICAgICBpbml0aWFsaXplRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIHJlYWR5KGNiKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gcmVhZHkoY2Ipe1xuICAgIF9pbnB1dFN0cmVhbS5wbGF5KCk7XG4gICAgY2IoKTtcbn1cblxuZnVuY3Rpb24gaW5pdENhbnZhcygpIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHZhciAkdmlld3BvcnQgPSBnZXRWaWV3UG9ydCgpO1xuICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjYW52YXMuaW1nQnVmZmVyXCIpO1xuICAgICAgICBpZiAoIV9jYW52YXNDb250YWluZXIuZG9tLmltYWdlKSB7XG4gICAgICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZS5jbGFzc05hbWUgPSBcImltZ0J1ZmZlclwiO1xuICAgICAgICAgICAgaWYgKCR2aWV3cG9ydCAmJiBfY29uZmlnLmlucHV0U3RyZWFtLnR5cGUgPT09IFwiSW1hZ2VTdHJlYW1cIikge1xuICAgICAgICAgICAgICAgICR2aWV3cG9ydC5hcHBlbmRDaGlsZChfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX2NhbnZhc0NvbnRhaW5lci5jdHguaW1hZ2UgPSBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLmltYWdlLndpZHRoID0gX2lucHV0U3RyZWFtLmdldENhbnZhc1NpemUoKS54O1xuICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZS5oZWlnaHQgPSBfaW5wdXRTdHJlYW0uZ2V0Q2FudmFzU2l6ZSgpLnk7XG5cbiAgICAgICAgX2NhbnZhc0NvbnRhaW5lci5kb20ub3ZlcmxheSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjYW52YXMuZHJhd2luZ0J1ZmZlclwiKTtcbiAgICAgICAgaWYgKCFfY2FudmFzQ29udGFpbmVyLmRvbS5vdmVybGF5KSB7XG4gICAgICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5vdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICAgICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkuY2xhc3NOYW1lID0gXCJkcmF3aW5nQnVmZmVyXCI7XG4gICAgICAgICAgICBpZiAoJHZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICAgJHZpZXdwb3J0LmFwcGVuZENoaWxkKF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNsZWFyRml4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJyXCIpO1xuICAgICAgICAgICAgY2xlYXJGaXguc2V0QXR0cmlidXRlKFwiY2xlYXJcIiwgXCJhbGxcIik7XG4gICAgICAgICAgICBpZiAoJHZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICAgJHZpZXdwb3J0LmFwcGVuZENoaWxkKGNsZWFyRml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfY2FudmFzQ29udGFpbmVyLmN0eC5vdmVybGF5ID0gX2NhbnZhc0NvbnRhaW5lci5kb20ub3ZlcmxheS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkud2lkdGggPSBfaW5wdXRTdHJlYW0uZ2V0Q2FudmFzU2l6ZSgpLng7XG4gICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkuaGVpZ2h0ID0gX2lucHV0U3RyZWFtLmdldENhbnZhc1NpemUoKS55O1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaW5pdEJ1ZmZlcnMoaW1hZ2VXcmFwcGVyKSB7XG4gICAgaWYgKGltYWdlV3JhcHBlcikge1xuICAgICAgICBfaW5wdXRJbWFnZVdyYXBwZXIgPSBpbWFnZVdyYXBwZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX2lucHV0SW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcih7XG4gICAgICAgICAgICB4OiBfaW5wdXRTdHJlYW0uZ2V0V2lkdGgoKSxcbiAgICAgICAgICAgIHk6IF9pbnB1dFN0cmVhbS5nZXRIZWlnaHQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoRU5WLmRldmVsb3BtZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKF9pbnB1dEltYWdlV3JhcHBlci5zaXplKTtcbiAgICB9XG4gICAgX2JveFNpemUgPSBbXG4gICAgICAgIHZlYzIuY2xvbmUoWzAsIDBdKSxcbiAgICAgICAgdmVjMi5jbG9uZShbMCwgX2lucHV0SW1hZ2VXcmFwcGVyLnNpemUueV0pLFxuICAgICAgICB2ZWMyLmNsb25lKFtfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS54LCBfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS55XSksXG4gICAgICAgIHZlYzIuY2xvbmUoW19pbnB1dEltYWdlV3JhcHBlci5zaXplLngsIDBdKVxuICAgIF07XG4gICAgQmFyY29kZUxvY2F0b3IuaW5pdChfaW5wdXRJbWFnZVdyYXBwZXIsIF9jb25maWcubG9jYXRvcik7XG59XG5cbmZ1bmN0aW9uIGdldEJvdW5kaW5nQm94ZXMoKSB7XG4gICAgaWYgKF9jb25maWcubG9jYXRlKSB7XG4gICAgICAgIHJldHVybiBCYXJjb2RlTG9jYXRvci5sb2NhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gW1tcbiAgICAgICAgICAgIHZlYzIuY2xvbmUoX2JveFNpemVbMF0pLFxuICAgICAgICAgICAgdmVjMi5jbG9uZShfYm94U2l6ZVsxXSksXG4gICAgICAgICAgICB2ZWMyLmNsb25lKF9ib3hTaXplWzJdKSxcbiAgICAgICAgICAgIHZlYzIuY2xvbmUoX2JveFNpemVbM10pXV07XG4gICAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1SZXN1bHQocmVzdWx0KSB7XG4gICAgdmFyIHRvcFJpZ2h0ID0gX2lucHV0U3RyZWFtLmdldFRvcFJpZ2h0KCksXG4gICAgICAgIHhPZmZzZXQgPSB0b3BSaWdodC54LFxuICAgICAgICB5T2Zmc2V0ID0gdG9wUmlnaHQueSxcbiAgICAgICAgaTtcblxuICAgIGlmICh4T2Zmc2V0ID09PSAwICYmIHlPZmZzZXQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuYmFyY29kZXMpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHJlc3VsdC5iYXJjb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdHJhbnNmb3JtUmVzdWx0KHJlc3VsdC5iYXJjb2Rlc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0LmxpbmUgJiYgcmVzdWx0LmxpbmUubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIG1vdmVMaW5lKHJlc3VsdC5saW5lKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0LmJveCkge1xuICAgICAgICBtb3ZlQm94KHJlc3VsdC5ib3gpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuYm94ZXMgJiYgcmVzdWx0LmJveGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHJlc3VsdC5ib3hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbW92ZUJveChyZXN1bHQuYm94ZXNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW92ZUJveChib3gpIHtcbiAgICAgICAgdmFyIGNvcm5lciA9IGJveC5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGNvcm5lci0tKSB7XG4gICAgICAgICAgICBib3hbY29ybmVyXVswXSArPSB4T2Zmc2V0O1xuICAgICAgICAgICAgYm94W2Nvcm5lcl1bMV0gKz0geU9mZnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vdmVMaW5lKGxpbmUpIHtcbiAgICAgICAgbGluZVswXS54ICs9IHhPZmZzZXQ7XG4gICAgICAgIGxpbmVbMF0ueSArPSB5T2Zmc2V0O1xuICAgICAgICBsaW5lWzFdLnggKz0geE9mZnNldDtcbiAgICAgICAgbGluZVsxXS55ICs9IHlPZmZzZXQ7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBhZGRSZXN1bHQgKHJlc3VsdCwgaW1hZ2VEYXRhKSB7XG4gICAgaWYgKCFpbWFnZURhdGEgfHwgIV9yZXN1bHRDb2xsZWN0b3IpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuYmFyY29kZXMpIHtcbiAgICAgICAgcmVzdWx0LmJhcmNvZGVzLmZpbHRlcihiYXJjb2RlID0+IGJhcmNvZGUuY29kZVJlc3VsdClcbiAgICAgICAgICAgIC5mb3JFYWNoKGJhcmNvZGUgPT4gYWRkUmVzdWx0KGJhcmNvZGUsIGltYWdlRGF0YSkpO1xuICAgIH0gZWxzZSBpZiAocmVzdWx0LmNvZGVSZXN1bHQpIHtcbiAgICAgICAgX3Jlc3VsdENvbGxlY3Rvci5hZGRSZXN1bHQoaW1hZ2VEYXRhLCBfaW5wdXRTdHJlYW0uZ2V0Q2FudmFzU2l6ZSgpLCByZXN1bHQuY29kZVJlc3VsdCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBoYXNDb2RlUmVzdWx0IChyZXN1bHQpIHtcbiAgICByZXR1cm4gcmVzdWx0ICYmIChyZXN1bHQuYmFyY29kZXMgP1xuICAgICAgcmVzdWx0LmJhcmNvZGVzLnNvbWUoYmFyY29kZSA9PiBiYXJjb2RlLmNvZGVSZXN1bHQpIDpcbiAgICAgIHJlc3VsdC5jb2RlUmVzdWx0KTtcbn1cblxuZnVuY3Rpb24gcHVibGlzaFJlc3VsdChyZXN1bHQsIGltYWdlRGF0YSkge1xuICAgIGxldCByZXN1bHRUb1B1Ymxpc2ggPSByZXN1bHQ7XG5cbiAgICBpZiAocmVzdWx0ICYmIF9vblVJVGhyZWFkKSB7XG4gICAgICAgIHRyYW5zZm9ybVJlc3VsdChyZXN1bHQpO1xuICAgICAgICBhZGRSZXN1bHQocmVzdWx0LCBpbWFnZURhdGEpO1xuICAgICAgICByZXN1bHRUb1B1Ymxpc2ggPSByZXN1bHQuYmFyY29kZXMgfHwgcmVzdWx0O1xuICAgIH1cblxuICAgIEV2ZW50cy5wdWJsaXNoKFwicHJvY2Vzc2VkXCIsIHJlc3VsdFRvUHVibGlzaCk7XG4gICAgaWYgKGhhc0NvZGVSZXN1bHQocmVzdWx0KSkge1xuICAgICAgICBFdmVudHMucHVibGlzaChcImRldGVjdGVkXCIsIHJlc3VsdFRvUHVibGlzaCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBsb2NhdGVBbmREZWNvZGUoKSB7XG4gICAgdmFyIHJlc3VsdCxcbiAgICAgICAgYm94ZXM7XG5cbiAgICBib3hlcyA9IGdldEJvdW5kaW5nQm94ZXMoKTtcbiAgICBpZiAoYm94ZXMpIHtcbiAgICAgICAgcmVzdWx0ID0gX2RlY29kZXIuZGVjb2RlRnJvbUJvdW5kaW5nQm94ZXMoYm94ZXMpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgfHwge307XG4gICAgICAgIHJlc3VsdC5ib3hlcyA9IGJveGVzO1xuICAgICAgICBwdWJsaXNoUmVzdWx0KHJlc3VsdCwgX2lucHV0SW1hZ2VXcmFwcGVyLmRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHB1Ymxpc2hSZXN1bHQoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZSgpIHtcbiAgICB2YXIgYXZhaWxhYmxlV29ya2VyO1xuXG4gICAgaWYgKF9vblVJVGhyZWFkKSB7XG4gICAgICAgIGlmIChfd29ya2VyUG9vbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBhdmFpbGFibGVXb3JrZXIgPSBfd29ya2VyUG9vbC5maWx0ZXIoZnVuY3Rpb24od29ya2VyVGhyZWFkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF3b3JrZXJUaHJlYWQuYnVzeTtcbiAgICAgICAgICAgIH0pWzBdO1xuICAgICAgICAgICAgaWYgKGF2YWlsYWJsZVdvcmtlcikge1xuICAgICAgICAgICAgICAgIF9mcmFtZWdyYWJiZXIuYXR0YWNoRGF0YShhdmFpbGFibGVXb3JrZXIuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBhbGwgd29ya2VycyBhcmUgYnVzeVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX2ZyYW1lZ3JhYmJlci5hdHRhY2hEYXRhKF9pbnB1dEltYWdlV3JhcHBlci5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoX2ZyYW1lZ3JhYmJlci5ncmFiKCkpIHtcbiAgICAgICAgICAgIGlmIChhdmFpbGFibGVXb3JrZXIpIHtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVXb3JrZXIuYnVzeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlV29ya2VyLndvcmtlci5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgIGNtZDogJ3Byb2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICBpbWFnZURhdGE6IGF2YWlsYWJsZVdvcmtlci5pbWFnZURhdGFcbiAgICAgICAgICAgICAgICB9LCBbYXZhaWxhYmxlV29ya2VyLmltYWdlRGF0YS5idWZmZXJdKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9jYXRlQW5kRGVjb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBsb2NhdGVBbmREZWNvZGUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHN0YXJ0Q29udGludW91c1VwZGF0ZSgpIHtcbiAgICB2YXIgbmV4dCA9IG51bGwsXG4gICAgICAgIGRlbGF5ID0gMTAwMCAvIChfY29uZmlnLmZyZXF1ZW5jeSB8fCA2MCk7XG5cbiAgICBfc3RvcHBlZCA9IGZhbHNlO1xuICAgIChmdW5jdGlvbiBmcmFtZSh0aW1lc3RhbXApIHtcbiAgICAgICAgbmV4dCA9IG5leHQgfHwgdGltZXN0YW1wO1xuICAgICAgICBpZiAoIV9zdG9wcGVkKSB7XG4gICAgICAgICAgICBpZiAodGltZXN0YW1wID49IG5leHQpIHtcbiAgICAgICAgICAgICAgICBuZXh0ICs9IGRlbGF5O1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltRnJhbWUoZnJhbWUpO1xuICAgICAgICB9XG4gICAgfShwZXJmb3JtYW5jZS5ub3coKSkpO1xufVxuXG5mdW5jdGlvbiBzdGFydCgpIHtcbiAgICBpZiAoX29uVUlUaHJlYWQgJiYgX2NvbmZpZy5pbnB1dFN0cmVhbS50eXBlID09PSBcIkxpdmVTdHJlYW1cIikge1xuICAgICAgICBzdGFydENvbnRpbnVvdXNVcGRhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB1cGRhdGUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGluaXRXb3JrZXIoY2IpIHtcbiAgICB2YXIgYmxvYlVSTCxcbiAgICAgICAgd29ya2VyVGhyZWFkID0ge1xuICAgICAgICAgICAgd29ya2VyOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBpbWFnZURhdGE6IG5ldyBVaW50OEFycmF5KF9pbnB1dFN0cmVhbS5nZXRXaWR0aCgpICogX2lucHV0U3RyZWFtLmdldEhlaWdodCgpKSxcbiAgICAgICAgICAgIGJ1c3k6IHRydWVcbiAgICAgICAgfTtcblxuICAgIGJsb2JVUkwgPSBnZW5lcmF0ZVdvcmtlckJsb2IoKTtcbiAgICB3b3JrZXJUaHJlYWQud29ya2VyID0gbmV3IFdvcmtlcihibG9iVVJMKTtcblxuICAgIHdvcmtlclRocmVhZC53b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZSkge1xuICAgICAgICBpZiAoZS5kYXRhLmV2ZW50ID09PSAnaW5pdGlhbGl6ZWQnKSB7XG4gICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGJsb2JVUkwpO1xuICAgICAgICAgICAgd29ya2VyVGhyZWFkLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC5pbWFnZURhdGEgPSBuZXcgVWludDhBcnJheShlLmRhdGEuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIldvcmtlciBpbml0aWFsaXplZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjYih3b3JrZXJUaHJlYWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5ldmVudCA9PT0gJ3Byb2Nlc3NlZCcpIHtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC5pbWFnZURhdGEgPSBuZXcgVWludDhBcnJheShlLmRhdGEuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgICBwdWJsaXNoUmVzdWx0KGUuZGF0YS5yZXN1bHQsIHdvcmtlclRocmVhZC5pbWFnZURhdGEpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5ldmVudCA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiV29ya2VyIGVycm9yOiBcIiArIGUuZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB3b3JrZXJUaHJlYWQud29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgY21kOiAnaW5pdCcsXG4gICAgICAgIHNpemU6IHt4OiBfaW5wdXRTdHJlYW0uZ2V0V2lkdGgoKSwgeTogX2lucHV0U3RyZWFtLmdldEhlaWdodCgpfSxcbiAgICAgICAgaW1hZ2VEYXRhOiB3b3JrZXJUaHJlYWQuaW1hZ2VEYXRhLFxuICAgICAgICBjb25maWc6IGNvbmZpZ0ZvcldvcmtlcihfY29uZmlnKVxuICAgIH0sIFt3b3JrZXJUaHJlYWQuaW1hZ2VEYXRhLmJ1ZmZlcl0pO1xufVxuXG5mdW5jdGlvbiBjb25maWdGb3JXb3JrZXIoY29uZmlnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBpbnB1dFN0cmVhbToge1xuICAgICAgICAgICAgLi4uY29uZmlnLmlucHV0U3RyZWFtLFxuICAgICAgICAgICAgdGFyZ2V0OiBudWxsXG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiB3b3JrZXJJbnRlcmZhY2UoZmFjdG9yeSkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmKi9cbiAgICBpZiAoZmFjdG9yeSkge1xuICAgICAgICB2YXIgUXVhZ2dhID0gZmFjdG9yeSgpLmRlZmF1bHQ7XG4gICAgICAgIGlmICghUXVhZ2dhKSB7XG4gICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHsnZXZlbnQnOiAnZXJyb3InLCBtZXNzYWdlOiAnUXVhZ2dhIGNvdWxkIG5vdCBiZSBjcmVhdGVkJ30pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBpbWFnZVdyYXBwZXI7XG5cbiAgICBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKGUuZGF0YS5jbWQgPT09ICdpbml0Jykge1xuICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGUuZGF0YS5jb25maWc7XG4gICAgICAgICAgICBjb25maWcubnVtT2ZXb3JrZXJzID0gMDtcbiAgICAgICAgICAgIGltYWdlV3JhcHBlciA9IG5ldyBRdWFnZ2EuSW1hZ2VXcmFwcGVyKHtcbiAgICAgICAgICAgICAgICB4OiBlLmRhdGEuc2l6ZS54LFxuICAgICAgICAgICAgICAgIHk6IGUuZGF0YS5zaXplLnlcbiAgICAgICAgICAgIH0sIG5ldyBVaW50OEFycmF5KGUuZGF0YS5pbWFnZURhdGEpKTtcbiAgICAgICAgICAgIFF1YWdnYS5pbml0KGNvbmZpZywgcmVhZHksIGltYWdlV3JhcHBlcik7XG4gICAgICAgICAgICBRdWFnZ2Eub25Qcm9jZXNzZWQob25Qcm9jZXNzZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5jbWQgPT09ICdwcm9jZXNzJykge1xuICAgICAgICAgICAgaW1hZ2VXcmFwcGVyLmRhdGEgPSBuZXcgVWludDhBcnJheShlLmRhdGEuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIFF1YWdnYS5zdGFydCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5jbWQgPT09ICdzZXRSZWFkZXJzJykge1xuICAgICAgICAgICAgUXVhZ2dhLnNldFJlYWRlcnMoZS5kYXRhLnJlYWRlcnMpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG9uUHJvY2Vzc2VkKHJlc3VsdCkge1xuICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICdldmVudCc6ICdwcm9jZXNzZWQnLFxuICAgICAgICAgICAgaW1hZ2VEYXRhOiBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgICAgIHJlc3VsdDogcmVzdWx0XG4gICAgICAgIH0sIFtpbWFnZVdyYXBwZXIuZGF0YS5idWZmZXJdKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWFkeSgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHsnZXZlbnQnOiAnaW5pdGlhbGl6ZWQnLCBpbWFnZURhdGE6IGltYWdlV3JhcHBlci5kYXRhfSwgW2ltYWdlV3JhcHBlci5kYXRhLmJ1ZmZlcl0pO1xuICAgIH1cblxuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVXb3JrZXJCbG9iKCkge1xuICAgIHZhciBibG9iLFxuICAgICAgICBmYWN0b3J5U291cmNlO1xuXG4gICAgLyoganNoaW50IGlnbm9yZTpzdGFydCAqL1xuICAgIGlmICh0eXBlb2YgX19mYWN0b3J5U291cmNlX18gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGZhY3RvcnlTb3VyY2UgPSBfX2ZhY3RvcnlTb3VyY2VfXzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgIH1cbiAgICAvKiBqc2hpbnQgaWdub3JlOmVuZCAqL1xuXG4gICAgYmxvYiA9IG5ldyBCbG9iKFsnKCcgKyB3b3JrZXJJbnRlcmZhY2UudG9TdHJpbmcoKSArICcpKCcgKyBmYWN0b3J5U291cmNlICsgJyk7J10sXG4gICAgICAgIHt0eXBlOiAndGV4dC9qYXZhc2NyaXB0J30pO1xuXG4gICAgcmV0dXJuIHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xufVxuXG5mdW5jdGlvbiBzZXRSZWFkZXJzKHJlYWRlcnMpIHtcbiAgICBpZiAoX2RlY29kZXIpIHtcbiAgICAgICAgX2RlY29kZXIuc2V0UmVhZGVycyhyZWFkZXJzKTtcbiAgICB9IGVsc2UgaWYgKF9vblVJVGhyZWFkICYmIF93b3JrZXJQb29sLmxlbmd0aCA+IDApIHtcbiAgICAgICAgX3dvcmtlclBvb2wuZm9yRWFjaChmdW5jdGlvbih3b3JrZXJUaHJlYWQpIHtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC53b3JrZXIucG9zdE1lc3NhZ2Uoe2NtZDogJ3NldFJlYWRlcnMnLCByZWFkZXJzOiByZWFkZXJzfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gYWRqdXN0V29ya2VyUG9vbChjYXBhY2l0eSwgY2IpIHtcbiAgICBjb25zdCBpbmNyZWFzZUJ5ID0gY2FwYWNpdHkgLSBfd29ya2VyUG9vbC5sZW5ndGg7XG4gICAgaWYgKGluY3JlYXNlQnkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGNiICYmIGNiKCk7XG4gICAgfVxuICAgIGlmIChpbmNyZWFzZUJ5IDwgMCkge1xuICAgICAgICBjb25zdCB3b3JrZXJzVG9UZXJtaW5hdGUgPSBfd29ya2VyUG9vbC5zbGljZShpbmNyZWFzZUJ5KTtcbiAgICAgICAgd29ya2Vyc1RvVGVybWluYXRlLmZvckVhY2goZnVuY3Rpb24od29ya2VyVGhyZWFkKSB7XG4gICAgICAgICAgICB3b3JrZXJUaHJlYWQud29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiV29ya2VyIHRlcm1pbmF0ZWQhXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgX3dvcmtlclBvb2wgPSBfd29ya2VyUG9vbC5zbGljZSgwLCBpbmNyZWFzZUJ5KTtcbiAgICAgICAgcmV0dXJuIGNiICYmIGNiKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmNyZWFzZUJ5OyBpKyspIHtcbiAgICAgICAgICAgIGluaXRXb3JrZXIod29ya2VySW5pdGlhbGl6ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gd29ya2VySW5pdGlhbGl6ZWQod29ya2VyVGhyZWFkKSB7XG4gICAgICAgICAgICBfd29ya2VyUG9vbC5wdXNoKHdvcmtlclRocmVhZCk7XG4gICAgICAgICAgICBpZiAoX3dvcmtlclBvb2wubGVuZ3RoID49IGNhcGFjaXR5KXtcbiAgICAgICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgaW5pdDogZnVuY3Rpb24oY29uZmlnLCBjYiwgaW1hZ2VXcmFwcGVyKSB7XG4gICAgICAgIF9jb25maWcgPSBtZXJnZSh7fSwgQ29uZmlnLCBjb25maWcpO1xuICAgICAgICBpZiAoaW1hZ2VXcmFwcGVyKSB7XG4gICAgICAgICAgICBfb25VSVRocmVhZCA9IGZhbHNlO1xuICAgICAgICAgICAgaW5pdGlhbGl6ZURhdGEoaW1hZ2VXcmFwcGVyKTtcbiAgICAgICAgICAgIHJldHVybiBjYigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5pdElucHV0U3RyZWFtKGNiKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBzdGFydCgpO1xuICAgIH0sXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIF9zdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgYWRqdXN0V29ya2VyUG9vbCgwKTtcbiAgICAgICAgaWYgKF9jb25maWcuaW5wdXRTdHJlYW0udHlwZSA9PT0gXCJMaXZlU3RyZWFtXCIpIHtcbiAgICAgICAgICAgIENhbWVyYUFjY2Vzcy5yZWxlYXNlKCk7XG4gICAgICAgICAgICBfaW5wdXRTdHJlYW0uY2xlYXJFdmVudEhhbmRsZXJzKCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBhdXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgX3N0b3BwZWQgPSB0cnVlO1xuICAgIH0sXG4gICAgb25EZXRlY3RlZDogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgICAgRXZlbnRzLnN1YnNjcmliZShcImRldGVjdGVkXCIsIGNhbGxiYWNrKTtcbiAgICB9LFxuICAgIG9mZkRldGVjdGVkOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAgICBFdmVudHMudW5zdWJzY3JpYmUoXCJkZXRlY3RlZFwiLCBjYWxsYmFjayk7XG4gICAgfSxcbiAgICBvblByb2Nlc3NlZDogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgICAgRXZlbnRzLnN1YnNjcmliZShcInByb2Nlc3NlZFwiLCBjYWxsYmFjayk7XG4gICAgfSxcbiAgICBvZmZQcm9jZXNzZWQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgIEV2ZW50cy51bnN1YnNjcmliZShcInByb2Nlc3NlZFwiLCBjYWxsYmFjayk7XG4gICAgfSxcbiAgICBzZXRSZWFkZXJzOiBmdW5jdGlvbihyZWFkZXJzKSB7XG4gICAgICAgIHNldFJlYWRlcnMocmVhZGVycyk7XG4gICAgfSxcbiAgICByZWdpc3RlclJlc3VsdENvbGxlY3RvcjogZnVuY3Rpb24ocmVzdWx0Q29sbGVjdG9yKSB7XG4gICAgICAgIGlmIChyZXN1bHRDb2xsZWN0b3IgJiYgdHlwZW9mIHJlc3VsdENvbGxlY3Rvci5hZGRSZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIF9yZXN1bHRDb2xsZWN0b3IgPSByZXN1bHRDb2xsZWN0b3I7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNhbnZhczogX2NhbnZhc0NvbnRhaW5lcixcbiAgICBkZWNvZGVTaW5nbGU6IGZ1bmN0aW9uKGNvbmZpZywgcmVzdWx0Q2FsbGJhY2spIHtcbiAgICAgICAgY29uZmlnID0gbWVyZ2Uoe1xuICAgICAgICAgICAgaW5wdXRTdHJlYW06IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcIkltYWdlU3RyZWFtXCIsXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNpemU6IDgwMCxcbiAgICAgICAgICAgICAgICBzcmM6IGNvbmZpZy5zcmNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBudW1PZldvcmtlcnM6IChFTlYuZGV2ZWxvcG1lbnQgJiYgY29uZmlnLmRlYnVnKSA/IDAgOiAxLFxuICAgICAgICAgICAgbG9jYXRvcjoge1xuICAgICAgICAgICAgICAgIGhhbGZTYW1wbGU6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuaW5pdChjb25maWcsICgpID0+IHtcbiAgICAgICAgICAgIEV2ZW50cy5vbmNlKFwicHJvY2Vzc2VkXCIsIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgICAgICAgICByZXN1bHRDYWxsYmFjay5jYWxsKG51bGwsIHJlc3VsdCk7XG4gICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgSW1hZ2VXcmFwcGVyOiBJbWFnZVdyYXBwZXIsXG4gICAgSW1hZ2VEZWJ1ZzogSW1hZ2VEZWJ1ZyxcbiAgICBSZXN1bHRDb2xsZWN0b3I6IFJlc3VsdENvbGxlY3RvcixcbiAgICBDYW1lcmFBY2Nlc3M6IENhbWVyYUFjY2Vzcyxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVhZ2dhLmpzIiwiaW1wb3J0IEltYWdlRGVidWcgZnJvbSAnLi4vY29tbW9uL2ltYWdlX2RlYnVnJztcblxuZnVuY3Rpb24gY29udGFpbnMoY29kZVJlc3VsdCwgbGlzdCkge1xuICAgIGlmIChsaXN0KSB7XG4gICAgICAgIHJldHVybiBsaXN0LnNvbWUoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhpdGVtKS5ldmVyeShmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1ba2V5XSA9PT0gY29kZVJlc3VsdFtrZXldO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHBhc3Nlc0ZpbHRlcihjb2RlUmVzdWx0LCBmaWx0ZXIpIHtcbiAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gZmlsdGVyKGNvZGVSZXN1bHQpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNyZWF0ZTogZnVuY3Rpb24oY29uZmlnKSB7XG4gICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpLFxuICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKSxcbiAgICAgICAgICAgIHJlc3VsdHMgPSBbXSxcbiAgICAgICAgICAgIGNhcGFjaXR5ID0gY29uZmlnLmNhcGFjaXR5IHx8IDIwLFxuICAgICAgICAgICAgY2FwdHVyZSA9IGNvbmZpZy5jYXB0dXJlID09PSB0cnVlO1xuXG4gICAgICAgIGZ1bmN0aW9uIG1hdGNoZXNDb25zdHJhaW50cyhjb2RlUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gY2FwYWNpdHlcbiAgICAgICAgICAgICAgICAmJiBjb2RlUmVzdWx0XG4gICAgICAgICAgICAgICAgJiYgIWNvbnRhaW5zKGNvZGVSZXN1bHQsIGNvbmZpZy5ibGFja2xpc3QpXG4gICAgICAgICAgICAgICAgJiYgcGFzc2VzRmlsdGVyKGNvZGVSZXN1bHQsIGNvbmZpZy5maWx0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFkZFJlc3VsdDogZnVuY3Rpb24oZGF0YSwgaW1hZ2VTaXplLCBjb2RlUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZXNDb25zdHJhaW50cyhjb2RlUmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICBjYXBhY2l0eS0tO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQuY29kZVJlc3VsdCA9IGNvZGVSZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYXB0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZVNpemUueDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZVNpemUueTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlRGVidWcuZHJhd0ltYWdlKGRhdGEsIGltYWdlU2l6ZSwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mcmFtZSA9IGNhbnZhcy50b0RhdGFVUkwoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UmVzdWx0czogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hbmFseXRpY3MvcmVzdWx0X2NvbGxlY3Rvci5qcyIsImNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKSxcbiAgICBkb3Q6IHJlcXVpcmUoJ2dsLXZlYzIvZG90Jylcbn1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2x1c3RlciBmb3IgZ3JvdXBpbmcgc2ltaWxhciBvcmllbnRhdGlvbnMgb2YgZGF0YXBvaW50c1xuICAgICAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNyZWF0ZTogZnVuY3Rpb24ocG9pbnQsIHRocmVzaG9sZCkge1xuICAgICAgICB2YXIgcG9pbnRzID0gW10sXG4gICAgICAgICAgICBjZW50ZXIgPSB7XG4gICAgICAgICAgICAgICAgcmFkOiAwLFxuICAgICAgICAgICAgICAgIHZlYzogdmVjMi5jbG9uZShbMCwgMF0pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcG9pbnRNYXAgPSB7fTtcblxuICAgICAgICBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgICAgICAgYWRkKHBvaW50KTtcbiAgICAgICAgICAgIHVwZGF0ZUNlbnRlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gYWRkKHBvaW50VG9BZGQpIHtcbiAgICAgICAgICAgIHBvaW50TWFwW3BvaW50VG9BZGQuaWRdID0gcG9pbnRUb0FkZDtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKHBvaW50VG9BZGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ2VudGVyKCkge1xuICAgICAgICAgICAgdmFyIGksIHN1bSA9IDA7XG4gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHN1bSArPSBwb2ludHNbaV0ucmFkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2VudGVyLnJhZCA9IHN1bSAvIHBvaW50cy5sZW5ndGg7XG4gICAgICAgICAgICBjZW50ZXIudmVjID0gdmVjMi5jbG9uZShbTWF0aC5jb3MoY2VudGVyLnJhZCksIE1hdGguc2luKGNlbnRlci5yYWQpXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpbml0KCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFkZDogZnVuY3Rpb24ocG9pbnRUb0FkZCkge1xuICAgICAgICAgICAgICAgIGlmICghcG9pbnRNYXBbcG9pbnRUb0FkZC5pZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkKHBvaW50VG9BZGQpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDZW50ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZml0czogZnVuY3Rpb24ob3RoZXJQb2ludCkge1xuICAgICAgICAgICAgICAgIC8vIGNoZWNrIGNvc2luZSBzaW1pbGFyaXR5IHRvIGNlbnRlci1hbmdsZVxuICAgICAgICAgICAgICAgIHZhciBzaW1pbGFyaXR5ID0gTWF0aC5hYnModmVjMi5kb3Qob3RoZXJQb2ludC5wb2ludC52ZWMsIGNlbnRlci52ZWMpKTtcbiAgICAgICAgICAgICAgICBpZiAoc2ltaWxhcml0eSA+IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFBvaW50czogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDZW50ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVQb2ludDogZnVuY3Rpb24obmV3UG9pbnQsIGlkLCBwcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmFkOiBuZXdQb2ludFtwcm9wZXJ0eV0sXG4gICAgICAgICAgICBwb2ludDogbmV3UG9pbnQsXG4gICAgICAgICAgICBpZDogaWRcbiAgICAgICAgfTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9jbHVzdGVyLmpzIiwiZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uKCkge1xuICAgIHZhciBldmVudHMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGdldEV2ZW50KGV2ZW50TmFtZSkge1xuICAgICAgICBpZiAoIWV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICBldmVudHNbZXZlbnROYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2ZW50c1tldmVudE5hbWVdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFyRXZlbnRzKCl7XG4gICAgICAgIGV2ZW50cyA9IHt9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHB1Ymxpc2hTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uLCBkYXRhKSB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrKGRhdGEpO1xuICAgICAgICAgICAgfSwgNCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24uY2FsbGJhY2soZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdWJzY3JpYmUoZXZlbnQsIGNhbGxiYWNrLCBhc3luYykge1xuICAgICAgICB2YXIgc3Vic2NyaXB0aW9uO1xuXG4gICAgICAgIGlmICggdHlwZW9mIGNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgYXN5bmM6IGFzeW5jXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBpZiAoIXN1YnNjcmlwdGlvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHRocm93IFwiQ2FsbGJhY2sgd2FzIG5vdCBzcGVjaWZpZWQgb24gb3B0aW9uc1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZ2V0RXZlbnQoZXZlbnQpLnN1YnNjcmliZXJzLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzdWJzY3JpYmU6IGZ1bmN0aW9uKGV2ZW50LCBjYWxsYmFjaywgYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmUoZXZlbnQsIGNhbGxiYWNrLCBhc3luYyk7XG4gICAgICAgIH0sXG4gICAgICAgIHB1Ymxpc2g6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgZGF0YSkge1xuICAgICAgICAgICAgdmFyIGV2ZW50ID0gZ2V0RXZlbnQoZXZlbnROYW1lKSxcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVycyA9IGV2ZW50LnN1YnNjcmliZXJzO1xuXG4gICAgICAgICAgICAvLyBQdWJsaXNoIG9uZS10aW1lIHN1YnNjcmlwdGlvbnNcbiAgICAgICAgICAgIHN1YnNjcmliZXJzLmZpbHRlcihmdW5jdGlvbihzdWJzY3JpYmVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhc3Vic2NyaWJlci5vbmNlO1xuICAgICAgICAgICAgfSkuZm9yRWFjaCgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hTdWJzY3JpcHRpb24oc3Vic2NyaWJlciwgZGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZW0gZnJvbSB0aGUgc3Vic2NyaWJlclxuICAgICAgICAgICAgZXZlbnQuc3Vic2NyaWJlcnMgPSBzdWJzY3JpYmVycy5maWx0ZXIoZnVuY3Rpb24oc3Vic2NyaWJlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiAhc3Vic2NyaWJlci5vbmNlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIHB1Ymxpc2ggdGhlIHJlc3RcbiAgICAgICAgICAgIGV2ZW50LnN1YnNjcmliZXJzLmZvckVhY2goKHN1YnNjcmliZXIpID0+IHtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3Vic2NyaXB0aW9uKHN1YnNjcmliZXIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uY2U6IGZ1bmN0aW9uKGV2ZW50LCBjYWxsYmFjaywgYXN5bmMpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZShldmVudCwge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjayxcbiAgICAgICAgICAgICAgICBhc3luYzogYXN5bmMsXG4gICAgICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHVuc3Vic2NyaWJlOiBmdW5jdGlvbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICB2YXIgZXZlbnQ7XG5cbiAgICAgICAgICAgIGlmIChldmVudE5hbWUpIHtcbiAgICAgICAgICAgICAgICBldmVudCA9IGdldEV2ZW50KGV2ZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50ICYmIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN1YnNjcmliZXJzID0gZXZlbnQuc3Vic2NyaWJlcnMuZmlsdGVyKGZ1bmN0aW9uKHN1YnNjcmliZXIpe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuY2FsbGJhY2sgIT09IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdWJzY3JpYmVycyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2xlYXJFdmVudHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59KSgpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9ldmVudHMuanMiLCJcbmV4cG9ydCBmdW5jdGlvbiBlbnVtZXJhdGVEZXZpY2VzKCkge1xuICAgIGlmIChuYXZpZ2F0b3IubWVkaWFEZXZpY2VzXG4gICAgICAgICAgICAmJiB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignZW51bWVyYXRlRGV2aWNlcyBpcyBub3QgZGVmaW5lZCcpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyTWVkaWEoY29uc3RyYWludHMpIHtcbiAgICBpZiAobmF2aWdhdG9yLm1lZGlhRGV2aWNlc1xuICAgICAgICAgICAgJiYgdHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzXG4gICAgICAgICAgICAuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignZ2V0VXNlck1lZGlhIGlzIG5vdCBkZWZpbmVkJykpO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9tZWRpYURldmljZXMuanMiLCIvKipcbiAqIENvbnN0cnVjdCByZXByZXNlbnRpbmcgYSBwYXJ0IG9mIGFub3RoZXIge0ltYWdlV3JhcHBlcn0uIFNoYXJlcyBkYXRhXG4gKiBiZXR3ZWVuIHRoZSBwYXJlbnQgYW5kIHRoZSBjaGlsZC5cbiAqIEBwYXJhbSBmcm9tIHtJbWFnZVJlZn0gVGhlIHBvc2l0aW9uIHdoZXJlIHRvIHN0YXJ0IHRoZSB7U3ViSW1hZ2V9IGZyb20uICh0b3AtbGVmdCBjb3JuZXIpXG4gKiBAcGFyYW0gc2l6ZSB7SW1hZ2VSZWZ9IFRoZSBzaXplIG9mIHRoZSByZXN1bHRpbmcgaW1hZ2VcbiAqIEBwYXJhbSBJIHtJbWFnZVdyYXBwZXJ9IFRoZSB7SW1hZ2VXcmFwcGVyfSB0byBzaGFyZSBmcm9tXG4gKiBAcmV0dXJucyB7U3ViSW1hZ2V9IEEgc2hhcmVkIHBhcnQgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKi9cbmZ1bmN0aW9uIFN1YkltYWdlKGZyb20sIHNpemUsIEkpIHtcbiAgICBpZiAoIUkpIHtcbiAgICAgICAgSSA9IHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBzaXplOiBzaXplXG4gICAgICAgIH07XG4gICAgfVxuICAgIHRoaXMuZGF0YSA9IEkuZGF0YTtcbiAgICB0aGlzLm9yaWdpbmFsU2l6ZSA9IEkuc2l6ZTtcbiAgICB0aGlzLkkgPSBJO1xuXG4gICAgdGhpcy5mcm9tID0gZnJvbTtcbiAgICB0aGlzLnNpemUgPSBzaXplO1xufVxuXG4vKipcbiAqIERpc3BsYXlzIHRoZSB7U3ViSW1hZ2V9IGluIGEgZ2l2ZW4gY2FudmFzXG4gKiBAcGFyYW0gY2FudmFzIHtDYW52YXN9IFRoZSBjYW52YXMgZWxlbWVudCB0byB3cml0ZSB0b1xuICogQHBhcmFtIHNjYWxlIHtOdW1iZXJ9IFNjYWxlIHdoaWNoIGlzIGFwcGxpZWQgdG8gZWFjaCBwaXhlbC12YWx1ZVxuICovXG5TdWJJbWFnZS5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKGNhbnZhcywgc2NhbGUpIHtcbiAgICB2YXIgY3R4LFxuICAgICAgICBmcmFtZSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgeSxcbiAgICAgICAgeCxcbiAgICAgICAgcGl4ZWw7XG5cbiAgICBpZiAoIXNjYWxlKSB7XG4gICAgICAgIHNjYWxlID0gMS4wO1xuICAgIH1cbiAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjYW52YXMud2lkdGggPSB0aGlzLnNpemUueDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy5zaXplLnk7XG4gICAgZnJhbWUgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgZGF0YSA9IGZyYW1lLmRhdGE7XG4gICAgY3VycmVudCA9IDA7XG4gICAgZm9yICh5ID0gMDsgeSA8IHRoaXMuc2l6ZS55OyB5KyspIHtcbiAgICAgICAgZm9yICh4ID0gMDsgeCA8IHRoaXMuc2l6ZS54OyB4KyspIHtcbiAgICAgICAgICAgIHBpeGVsID0geSAqIHRoaXMuc2l6ZS54ICsgeDtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmdldCh4LCB5KSAqIHNjYWxlO1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAwXSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBkYXRhW3BpeGVsICogNCArIDFdID0gY3VycmVudDtcbiAgICAgICAgICAgIGRhdGFbcGl4ZWwgKiA0ICsgMl0gPSBjdXJyZW50O1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAzXSA9IDI1NTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmcmFtZS5kYXRhID0gZGF0YTtcbiAgICBjdHgucHV0SW1hZ2VEYXRhKGZyYW1lLCAwLCAwKTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGEgZ2l2ZW4gcGl4ZWwgcG9zaXRpb24gZnJvbSB0aGUge1N1YkltYWdlfVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JheXNjYWxlIHZhbHVlIGF0IHRoZSBwaXhlbC1wb3NpdGlvblxuICovXG5TdWJJbWFnZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oeCwgeSkge1xuICAgIHJldHVybiB0aGlzLmRhdGFbKHRoaXMuZnJvbS55ICsgeSkgKiB0aGlzLm9yaWdpbmFsU2l6ZS54ICsgdGhpcy5mcm9tLnggKyB4XTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdW5kZXJseWluZyBkYXRhIGZyb20gYSBnaXZlbiB7SW1hZ2VXcmFwcGVyfVxuICogQHBhcmFtIGltYWdlIHtJbWFnZVdyYXBwZXJ9IFRoZSB1cGRhdGVkIGltYWdlXG4gKi9cblN1YkltYWdlLnByb3RvdHlwZS51cGRhdGVEYXRhID0gZnVuY3Rpb24oaW1hZ2UpIHtcbiAgICB0aGlzLm9yaWdpbmFsU2l6ZSA9IGltYWdlLnNpemU7XG4gICAgdGhpcy5kYXRhID0gaW1hZ2UuZGF0YTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHNoYXJlZCBhcmVhXG4gKiBAcGFyYW0gZnJvbSB7eCx5fSBUaGUgbmV3IGxvY2F0aW9uXG4gKiBAcmV0dXJucyB7U3ViSW1hZ2V9IHJldHVybnMge3RoaXN9IGZvciBwb3NzaWJsZSBjaGFpbmluZ1xuICovXG5TdWJJbWFnZS5wcm90b3R5cGUudXBkYXRlRnJvbSA9IGZ1bmN0aW9uKGZyb20pIHtcbiAgICB0aGlzLmZyb20gPSBmcm9tO1xuICAgIHJldHVybiB0aGlzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKFN1YkltYWdlKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9jb21tb24vc3ViSW1hZ2UuanMiLCIvKlxuICogdHlwZWRlZnMuanNcbiAqIE5vcm1hbGl6ZXMgYnJvd3Nlci1zcGVjaWZpYyBwcmVmaXhlc1xuICovXG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbUZyYW1lID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uICgvKiBmdW5jdGlvbiBGcmFtZVJlcXVlc3RDYWxsYmFjayAqLyBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCAxMDAwIC8gNjApO1xuICAgICAgICAgICAgfTtcbiAgICB9KSgpO1xufVxuTWF0aC5pbXVsID0gTWF0aC5pbXVsIHx8IGZ1bmN0aW9uKGEsIGIpIHtcbiAgICB2YXIgYWggPSAoYSA+Pj4gMTYpICYgMHhmZmZmLFxuICAgICAgICBhbCA9IGEgJiAweGZmZmYsXG4gICAgICAgIGJoID0gKGIgPj4+IDE2KSAmIDB4ZmZmZixcbiAgICAgICAgYmwgPSBiICYgMHhmZmZmO1xuICAgIC8vIHRoZSBzaGlmdCBieSAwIGZpeGVzIHRoZSBzaWduIG9uIHRoZSBoaWdoIHBhcnRcbiAgICAvLyB0aGUgZmluYWwgfDAgY29udmVydHMgdGhlIHVuc2lnbmVkIHZhbHVlIGludG8gYSBzaWduZWQgdmFsdWVcbiAgICByZXR1cm4gKChhbCAqIGJsKSArICgoKGFoICogYmwgKyBhbCAqIGJoKSA8PCAxNikgPj4+IDApIHwgMCk7XG59O1xuXG5pZiAodHlwZW9mIE9iamVjdC5hc3NpZ24gIT09ICdmdW5jdGlvbicpIHtcbiAgICBPYmplY3QuYXNzaWduID0gZnVuY3Rpb24odGFyZ2V0KSB7IC8vIC5sZW5ndGggb2YgZnVuY3Rpb24gaXMgMlxuICAgICAgICAndXNlIHN0cmljdCc7XG4gICAgICAgIGlmICh0YXJnZXQgPT09IG51bGwpIHsgLy8gVHlwZUVycm9yIGlmIHVuZGVmaW5lZCBvciBudWxsXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0byA9IE9iamVjdCh0YXJnZXQpO1xuXG4gICAgICAgIGZvciAodmFyIGluZGV4ID0gMTsgaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICB2YXIgbmV4dFNvdXJjZSA9IGFyZ3VtZW50c1tpbmRleF07XG5cbiAgICAgICAgICAgIGlmIChuZXh0U291cmNlICE9PSBudWxsKSB7IC8vIFNraXAgb3ZlciBpZiB1bmRlZmluZWQgb3IgbnVsbFxuICAgICAgICAgICAgICAgIGZvciAodmFyIG5leHRLZXkgaW4gbmV4dFNvdXJjZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBdm9pZCBidWdzIHdoZW4gaGFzT3duUHJvcGVydHkgaXMgc2hhZG93ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuZXh0U291cmNlLCBuZXh0S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9bbmV4dEtleV0gPSBuZXh0U291cmNlW25leHRLZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0bztcbiAgICB9O1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi90eXBlZGVmcy5qcyIsIm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlucHV0U3RyZWFtOiB7XG4gICAgICAgIG5hbWU6IFwiTGl2ZVwiLFxuICAgICAgICB0eXBlOiBcIkxpdmVTdHJlYW1cIixcbiAgICAgICAgY29uc3RyYWludHM6IHtcbiAgICAgICAgICAgIHdpZHRoOiA2NDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDQ4MCxcbiAgICAgICAgICAgIC8vIGFzcGVjdFJhdGlvOiA2NDAvNDgwLCAvLyBvcHRpb25hbFxuICAgICAgICAgICAgZmFjaW5nTW9kZTogXCJlbnZpcm9ubWVudFwiLCAvLyBvciB1c2VyXG4gICAgICAgICAgICAvLyBkZXZpY2VJZDogXCIzODc0NTk4MzQ1NzM4NzU5ODM3NTk4Mzc1OTgzNFwiXG4gICAgICAgIH0sXG4gICAgICAgIGFyZWE6IHtcbiAgICAgICAgICAgIHRvcDogXCIwJVwiLFxuICAgICAgICAgICAgcmlnaHQ6IFwiMCVcIixcbiAgICAgICAgICAgIGxlZnQ6IFwiMCVcIixcbiAgICAgICAgICAgIGJvdHRvbTogXCIwJVwiXG4gICAgICAgIH0sXG4gICAgICAgIHNpbmdsZUNoYW5uZWw6IGZhbHNlIC8vIHRydWU6IG9ubHkgdGhlIHJlZCBjb2xvci1jaGFubmVsIGlzIHJlYWRcbiAgICB9LFxuICAgIGxvY2F0ZTogdHJ1ZSxcbiAgICBudW1PZldvcmtlcnM6IDAsXG4gICAgZGVjb2Rlcjoge1xuICAgICAgICByZWFkZXJzOiBbXG4gICAgICAgICAgICAnY29kZV8xMjhfcmVhZGVyJ1xuICAgICAgICBdLFxuICAgICAgICBkZWJ1Zzoge1xuICAgICAgICAgICAgZHJhd0JvdW5kaW5nQm94OiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dGcmVxdWVuY3k6IGZhbHNlLFxuICAgICAgICAgICAgZHJhd1NjYW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dQYXR0ZXJuOiBmYWxzZVxuICAgICAgICB9XG4gICAgfSxcbiAgICBsb2NhdG9yOiB7XG4gICAgICAgIGhhbGZTYW1wbGU6IHRydWUsXG4gICAgICAgIHBhdGNoU2l6ZTogXCJtZWRpdW1cIiwgLy8geC1zbWFsbCwgc21hbGwsIG1lZGl1bSwgbGFyZ2UsIHgtbGFyZ2VcbiAgICAgICAgZGVidWc6IHtcbiAgICAgICAgICAgIHNob3dDYW52YXM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1BhdGNoZXM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0ZvdW5kUGF0Y2hlczogZmFsc2UsXG4gICAgICAgICAgICBzaG93U2tlbGV0b246IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0xhYmVsczogZmFsc2UsXG4gICAgICAgICAgICBzaG93UGF0Y2hMYWJlbHM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1JlbWFpbmluZ1BhdGNoTGFiZWxzOiBmYWxzZSxcbiAgICAgICAgICAgIGJveEZyb21QYXRjaGVzOiB7XG4gICAgICAgICAgICAgICAgc2hvd1RyYW5zZm9ybWVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzaG93VHJhbnNmb3JtZWRCb3g6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNob3dCQjogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvY29uZmlnL2NvbmZpZy5kZXYuanMiLCJsZXQgY29uZmlnO1xuXG5pZiAoRU5WLmRldmVsb3BtZW50KXtcbiAgICBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZy5kZXYuanMnKTtcbn0gZWxzZSBpZiAoRU5WLm5vZGUpIHtcbiAgICBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZy5ub2RlLmpzJyk7XG59IGVsc2Uge1xuICAgIGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnLnByb2QuanMnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uZmlnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbmZpZy9jb25maWcuanMiLCJpbXBvcnQgQnJlc2VuaGFtIGZyb20gJy4vYnJlc2VuaGFtJztcbmltcG9ydCBJbWFnZURlYnVnIGZyb20gJy4uL2NvbW1vbi9pbWFnZV9kZWJ1Zyc7XG5pbXBvcnQgQ29kZTEyOFJlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV8xMjhfcmVhZGVyJztcbmltcG9ydCBFQU5SZWFkZXIgZnJvbSAnLi4vcmVhZGVyL2Vhbl9yZWFkZXInO1xuaW1wb3J0IENvZGUzOVJlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV8zOV9yZWFkZXInO1xuaW1wb3J0IENvZGUzOVZJTlJlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV8zOV92aW5fcmVhZGVyJztcbmltcG9ydCBDb2RhYmFyUmVhZGVyIGZyb20gJy4uL3JlYWRlci9jb2RhYmFyX3JlYWRlcic7XG5pbXBvcnQgVVBDUmVhZGVyIGZyb20gJy4uL3JlYWRlci91cGNfcmVhZGVyJztcbmltcG9ydCBFQU44UmVhZGVyIGZyb20gJy4uL3JlYWRlci9lYW5fOF9yZWFkZXInO1xuaW1wb3J0IEVBTjJSZWFkZXIgZnJvbSAnLi4vcmVhZGVyL2Vhbl8yX3JlYWRlcic7XG5pbXBvcnQgRUFONVJlYWRlciBmcm9tICcuLi9yZWFkZXIvZWFuXzVfcmVhZGVyJztcbmltcG9ydCBVUENFUmVhZGVyIGZyb20gJy4uL3JlYWRlci91cGNfZV9yZWFkZXInO1xuaW1wb3J0IEkyb2Y1UmVhZGVyIGZyb20gJy4uL3JlYWRlci9pMm9mNV9yZWFkZXInO1xuaW1wb3J0IFR3b09mRml2ZVJlYWRlciBmcm9tICcuLi9yZWFkZXIvMm9mNV9yZWFkZXInO1xuaW1wb3J0IENvZGU5M1JlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV85M19yZWFkZXInO1xuXG5jb25zdCBSRUFERVJTID0ge1xuICAgIGNvZGVfMTI4X3JlYWRlcjogQ29kZTEyOFJlYWRlcixcbiAgICBlYW5fcmVhZGVyOiBFQU5SZWFkZXIsXG4gICAgZWFuXzVfcmVhZGVyOiBFQU41UmVhZGVyLFxuICAgIGVhbl8yX3JlYWRlcjogRUFOMlJlYWRlcixcbiAgICBlYW5fOF9yZWFkZXI6IEVBTjhSZWFkZXIsXG4gICAgY29kZV8zOV9yZWFkZXI6IENvZGUzOVJlYWRlcixcbiAgICBjb2RlXzM5X3Zpbl9yZWFkZXI6IENvZGUzOVZJTlJlYWRlcixcbiAgICBjb2RhYmFyX3JlYWRlcjogQ29kYWJhclJlYWRlcixcbiAgICB1cGNfcmVhZGVyOiBVUENSZWFkZXIsXG4gICAgdXBjX2VfcmVhZGVyOiBVUENFUmVhZGVyLFxuICAgIGkyb2Y1X3JlYWRlcjogSTJvZjVSZWFkZXIsXG4gICAgJzJvZjVfcmVhZGVyJzogVHdvT2ZGaXZlUmVhZGVyLFxuICAgIGNvZGVfOTNfcmVhZGVyOiBDb2RlOTNSZWFkZXJcbn07XG5leHBvcnQgZGVmYXVsdCB7XG4gICAgY3JlYXRlOiBmdW5jdGlvbihjb25maWcsIGlucHV0SW1hZ2VXcmFwcGVyKSB7XG4gICAgICAgIHZhciBfY2FudmFzID0ge1xuICAgICAgICAgICAgICAgIGN0eDoge1xuICAgICAgICAgICAgICAgICAgICBmcmVxdWVuY3k6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXk6IG51bGxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRvbToge1xuICAgICAgICAgICAgICAgICAgICBmcmVxdWVuY3k6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXk6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2JhcmNvZGVSZWFkZXJzID0gW107XG5cbiAgICAgICAgaW5pdENhbnZhcygpO1xuICAgICAgICBpbml0UmVhZGVycygpO1xuICAgICAgICBpbml0Q29uZmlnKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdENhbnZhcygpIHtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHZhciAkZGVidWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2RlYnVnLmRldGVjdGlvblwiKTtcbiAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5mcmVxdWVuY3kgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiY2FudmFzLmZyZXF1ZW5jeVwiKTtcbiAgICAgICAgICAgICAgICBpZiAoIV9jYW52YXMuZG9tLmZyZXF1ZW5jeSkge1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5mcmVxdWVuY3kgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5mcmVxdWVuY3kuY2xhc3NOYW1lID0gXCJmcmVxdWVuY3lcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRkZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGRlYnVnLmFwcGVuZENoaWxkKF9jYW52YXMuZG9tLmZyZXF1ZW5jeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX2NhbnZhcy5jdHguZnJlcXVlbmN5ID0gX2NhbnZhcy5kb20uZnJlcXVlbmN5LmdldENvbnRleHQoXCIyZFwiKTtcblxuICAgICAgICAgICAgICAgIF9jYW52YXMuZG9tLnBhdHRlcm4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiY2FudmFzLnBhdHRlcm5CdWZmZXJcIik7XG4gICAgICAgICAgICAgICAgaWYgKCFfY2FudmFzLmRvbS5wYXR0ZXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIF9jYW52YXMuZG9tLnBhdHRlcm4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5wYXR0ZXJuLmNsYXNzTmFtZSA9IFwicGF0dGVybkJ1ZmZlclwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZGVidWcuYXBwZW5kQ2hpbGQoX2NhbnZhcy5kb20ucGF0dGVybik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX2NhbnZhcy5jdHgucGF0dGVybiA9IF9jYW52YXMuZG9tLnBhdHRlcm4uZ2V0Q29udGV4dChcIjJkXCIpO1xuXG4gICAgICAgICAgICAgICAgX2NhbnZhcy5kb20ub3ZlcmxheSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjYW52YXMuZHJhd2luZ0J1ZmZlclwiKTtcbiAgICAgICAgICAgICAgICBpZiAoX2NhbnZhcy5kb20ub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmN0eC5vdmVybGF5ID0gX2NhbnZhcy5kb20ub3ZlcmxheS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdFJlYWRlcnMoKSB7XG4gICAgICAgICAgICBjb25maWcucmVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHJlYWRlckNvbmZpZykge1xuICAgICAgICAgICAgICAgIHZhciByZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSB7fSxcbiAgICAgICAgICAgICAgICAgICAgc3VwcGxlbWVudHMgPSBbXTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVhZGVyQ29uZmlnID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICByZWFkZXIgPSByZWFkZXJDb25maWcuZm9ybWF0O1xuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uID0gcmVhZGVyQ29uZmlnLmNvbmZpZztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWFkZXJDb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlYWRlciA9IHJlYWRlckNvbmZpZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJlZm9yZSByZWdpc3RlcmluZyByZWFkZXI6IFwiLCByZWFkZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5zdXBwbGVtZW50cykge1xuICAgICAgICAgICAgICAgICAgICBzdXBwbGVtZW50cyA9IGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdXBwbGVtZW50cy5tYXAoKHN1cHBsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJFQURFUlNbc3VwcGxlbWVudF0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfYmFyY29kZVJlYWRlcnMucHVzaChuZXcgUkVBREVSU1tyZWFkZXJdKGNvbmZpZ3VyYXRpb24sIHN1cHBsZW1lbnRzKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlJlZ2lzdGVyZWQgUmVhZGVyczogXCIgKyBfYmFyY29kZVJlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgocmVhZGVyKSA9PiBKU09OLnN0cmluZ2lmeSh7Zm9ybWF0OiByZWFkZXIuRk9STUFULCBjb25maWc6IHJlYWRlci5jb25maWd9KSlcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywgJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdENvbmZpZygpIHtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHZhciBpLFxuICAgICAgICAgICAgICAgICAgICB2aXMgPSBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTogX2NhbnZhcy5kb20uZnJlcXVlbmN5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcDogY29uZmlnLmRlYnVnLnNob3dGcmVxdWVuY3lcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTogX2NhbnZhcy5kb20ucGF0dGVybixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3A6IGNvbmZpZy5kZWJ1Zy5zaG93UGF0dGVyblxuICAgICAgICAgICAgICAgICAgICB9XTtcblxuICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2aXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpc1tpXS5wcm9wID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNbaV0ubm9kZS5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzW2ldLm5vZGUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGV4dGVuZCB0aGUgbGluZSBvbiBib3RoIGVuZHNcbiAgICAgICAgICogQHBhcmFtIHtBcnJheX0gbGluZVxuICAgICAgICAgKiBAcGFyYW0ge051bWJlcn0gYW5nbGVcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdldEV4dGVuZGVkTGluZShsaW5lLCBhbmdsZSwgZXh0KSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBleHRlbmRMaW5lKGFtb3VudCkge1xuICAgICAgICAgICAgICAgIHZhciBleHRlbnNpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHk6IGFtb3VudCAqIE1hdGguc2luKGFuZ2xlKSxcbiAgICAgICAgICAgICAgICAgICAgeDogYW1vdW50ICogTWF0aC5jb3MoYW5nbGUpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGxpbmVbMF0ueSAtPSBleHRlbnNpb24ueTtcbiAgICAgICAgICAgICAgICBsaW5lWzBdLnggLT0gZXh0ZW5zaW9uLng7XG4gICAgICAgICAgICAgICAgbGluZVsxXS55ICs9IGV4dGVuc2lvbi55O1xuICAgICAgICAgICAgICAgIGxpbmVbMV0ueCArPSBleHRlbnNpb24ueDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgaW5zaWRlIGltYWdlXG4gICAgICAgICAgICBleHRlbmRMaW5lKGV4dCk7XG4gICAgICAgICAgICB3aGlsZSAoZXh0ID4gMSAmJiAoIWlucHV0SW1hZ2VXcmFwcGVyLmluSW1hZ2VXaXRoQm9yZGVyKGxpbmVbMF0sIDApXG4gICAgICAgICAgICAgICAgICAgIHx8ICFpbnB1dEltYWdlV3JhcHBlci5pbkltYWdlV2l0aEJvcmRlcihsaW5lWzFdLCAwKSkpIHtcbiAgICAgICAgICAgICAgICBleHQgLT0gTWF0aC5jZWlsKGV4dCAvIDIpO1xuICAgICAgICAgICAgICAgIGV4dGVuZExpbmUoLWV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldExpbmUoYm94KSB7XG4gICAgICAgICAgICByZXR1cm4gW3tcbiAgICAgICAgICAgICAgICB4OiAoYm94WzFdWzBdIC0gYm94WzBdWzBdKSAvIDIgKyBib3hbMF1bMF0sXG4gICAgICAgICAgICAgICAgeTogKGJveFsxXVsxXSAtIGJveFswXVsxXSkgLyAyICsgYm94WzBdWzFdXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgeDogKGJveFszXVswXSAtIGJveFsyXVswXSkgLyAyICsgYm94WzJdWzBdLFxuICAgICAgICAgICAgICAgIHk6IChib3hbM11bMV0gLSBib3hbMl1bMV0pIC8gMiArIGJveFsyXVsxXVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiB0cnlEZWNvZGUobGluZSkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG51bGwsXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBiYXJjb2RlTGluZSA9IEJyZXNlbmhhbS5nZXRCYXJjb2RlTGluZShpbnB1dEltYWdlV3JhcHBlciwgbGluZVswXSwgbGluZVsxXSk7XG5cbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgY29uZmlnLmRlYnVnLnNob3dGcmVxdWVuY3kpIHtcbiAgICAgICAgICAgICAgICBJbWFnZURlYnVnLmRyYXdQYXRoKGxpbmUsIHt4OiAneCcsIHk6ICd5J30sIF9jYW52YXMuY3R4Lm92ZXJsYXksIHtjb2xvcjogJ3JlZCcsIGxpbmVXaWR0aDogM30pO1xuICAgICAgICAgICAgICAgIEJyZXNlbmhhbS5kZWJ1Zy5wcmludEZyZXF1ZW5jeShiYXJjb2RlTGluZS5saW5lLCBfY2FudmFzLmRvbS5mcmVxdWVuY3kpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBCcmVzZW5oYW0udG9CaW5hcnlMaW5lKGJhcmNvZGVMaW5lKTtcblxuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBjb25maWcuZGVidWcuc2hvd1BhdHRlcm4pIHtcbiAgICAgICAgICAgICAgICBCcmVzZW5oYW0uZGVidWcucHJpbnRQYXR0ZXJuKGJhcmNvZGVMaW5lLmxpbmUsIF9jYW52YXMuZG9tLnBhdHRlcm4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IF9iYXJjb2RlUmVhZGVycy5sZW5ndGggJiYgcmVzdWx0ID09PSBudWxsOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBfYmFyY29kZVJlYWRlcnNbaV0uZGVjb2RlUGF0dGVybihiYXJjb2RlTGluZS5saW5lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpe1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2RlUmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICAgICAgYmFyY29kZUxpbmU6IGJhcmNvZGVMaW5lXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgbWV0aG9kIHNsaWNlcyB0aGUgZ2l2ZW4gYXJlYSBhcGFydCBhbmQgdHJpZXMgdG8gZGV0ZWN0IGEgYmFyY29kZS1wYXR0ZXJuXG4gICAgICAgICAqIGZvciBlYWNoIHNsaWNlLiBJdCByZXR1cm5zIHRoZSBkZWNvZGVkIGJhcmNvZGUsIG9yIG51bGwgaWYgbm90aGluZyB3YXMgZm91bmRcbiAgICAgICAgICogQHBhcmFtIHtBcnJheX0gYm94XG4gICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IGxpbmVcbiAgICAgICAgICogQHBhcmFtIHtOdW1iZXJ9IGxpbmVBbmdsZVxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdHJ5RGVjb2RlQnJ1dGVGb3JjZShib3gsIGxpbmUsIGxpbmVBbmdsZSkge1xuICAgICAgICAgICAgdmFyIHNpZGVMZW5ndGggPSBNYXRoLnNxcnQoTWF0aC5wb3coYm94WzFdWzBdIC0gYm94WzBdWzBdLCAyKSArIE1hdGgucG93KChib3hbMV1bMV0gLSBib3hbMF1bMV0pLCAyKSksXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBzbGljZXMgPSAxNixcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBudWxsLFxuICAgICAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgICAgICBleHRlbnNpb24sXG4gICAgICAgICAgICAgICAgeGRpciA9IE1hdGguc2luKGxpbmVBbmdsZSksXG4gICAgICAgICAgICAgICAgeWRpciA9IE1hdGguY29zKGxpbmVBbmdsZSk7XG5cbiAgICAgICAgICAgIGZvciAoIGkgPSAxOyBpIDwgc2xpY2VzICYmIHJlc3VsdCA9PT0gbnVsbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgLy8gbW92ZSBsaW5lIHBlcnBlbmRpY3VsYXIgdG8gYW5nbGVcbiAgICAgICAgICAgICAgICBkaXIgPSBzaWRlTGVuZ3RoIC8gc2xpY2VzICogaSAqIChpICUgMiA9PT0gMCA/IC0xIDogMSk7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0ge1xuICAgICAgICAgICAgICAgICAgICB5OiBkaXIgKiB4ZGlyLFxuICAgICAgICAgICAgICAgICAgICB4OiBkaXIgKiB5ZGlyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBsaW5lWzBdLnkgKz0gZXh0ZW5zaW9uLng7XG4gICAgICAgICAgICAgICAgbGluZVswXS54IC09IGV4dGVuc2lvbi55O1xuICAgICAgICAgICAgICAgIGxpbmVbMV0ueSArPSBleHRlbnNpb24ueDtcbiAgICAgICAgICAgICAgICBsaW5lWzFdLnggLT0gZXh0ZW5zaW9uLnk7XG5cbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnlEZWNvZGUobGluZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0TGluZUxlbmd0aChsaW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KFxuICAgICAgICAgICAgICAgIE1hdGgucG93KE1hdGguYWJzKGxpbmVbMV0ueSAtIGxpbmVbMF0ueSksIDIpICtcbiAgICAgICAgICAgICAgICBNYXRoLnBvdyhNYXRoLmFicyhsaW5lWzFdLnggLSBsaW5lWzBdLngpLCAyKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogV2l0aCB0aGUgaGVscCBvZiB0aGUgY29uZmlndXJlZCByZWFkZXJzIChDb2RlMTI4IG9yIEVBTikgdGhpcyBmdW5jdGlvbiB0cmllcyB0byBkZXRlY3QgYVxuICAgICAgICAgKiB2YWxpZCBiYXJjb2RlIHBhdHRlcm4gd2l0aGluIHRoZSBnaXZlbiBhcmVhLlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gYm94IFRoZSBhcmVhIHRvIHNlYXJjaCBpblxuICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSB0aGUgcmVzdWx0IHtjb2RlUmVzdWx0LCBsaW5lLCBhbmdsZSwgcGF0dGVybiwgdGhyZXNob2xkfVxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZGVjb2RlRnJvbUJvdW5kaW5nQm94KGJveCkge1xuICAgICAgICAgICAgdmFyIGxpbmUsXG4gICAgICAgICAgICAgICAgbGluZUFuZ2xlLFxuICAgICAgICAgICAgICAgIGN0eCA9IF9jYW52YXMuY3R4Lm92ZXJsYXksXG4gICAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgICAgIGxpbmVMZW5ndGg7XG5cbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmRlYnVnLmRyYXdCb3VuZGluZ0JveCAmJiBjdHgpIHtcbiAgICAgICAgICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UGF0aChib3gsIHt4OiAwLCB5OiAxfSwgY3R4LCB7Y29sb3I6IFwiYmx1ZVwiLCBsaW5lV2lkdGg6IDJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpbmUgPSBnZXRMaW5lKGJveCk7XG4gICAgICAgICAgICBsaW5lTGVuZ3RoID0gZ2V0TGluZUxlbmd0aChsaW5lKTtcbiAgICAgICAgICAgIGxpbmVBbmdsZSA9IE1hdGguYXRhbjIobGluZVsxXS55IC0gbGluZVswXS55LCBsaW5lWzFdLnggLSBsaW5lWzBdLngpO1xuICAgICAgICAgICAgbGluZSA9IGdldEV4dGVuZGVkTGluZShsaW5lLCBsaW5lQW5nbGUsIE1hdGguZmxvb3IobGluZUxlbmd0aCAqIDAuMSkpO1xuICAgICAgICAgICAgaWYgKGxpbmUgPT09IG51bGwpe1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHQgPSB0cnlEZWNvZGUobGluZSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ5RGVjb2RlQnJ1dGVGb3JjZShib3gsIGxpbmUsIGxpbmVBbmdsZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiByZXN1bHQgJiYgY29uZmlnLmRlYnVnLmRyYXdTY2FubGluZSAmJiBjdHgpIHtcbiAgICAgICAgICAgICAgICBJbWFnZURlYnVnLmRyYXdQYXRoKGxpbmUsIHt4OiAneCcsIHk6ICd5J30sIGN0eCwge2NvbG9yOiAncmVkJywgbGluZVdpZHRoOiAzfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29kZVJlc3VsdDogcmVzdWx0LmNvZGVSZXN1bHQsXG4gICAgICAgICAgICAgICAgbGluZTogbGluZSxcbiAgICAgICAgICAgICAgICBhbmdsZTogbGluZUFuZ2xlLFxuICAgICAgICAgICAgICAgIHBhdHRlcm46IHJlc3VsdC5iYXJjb2RlTGluZS5saW5lLFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogcmVzdWx0LmJhcmNvZGVMaW5lLnRocmVzaG9sZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWNvZGVGcm9tQm91bmRpbmdCb3g6IGZ1bmN0aW9uKGJveCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGVGcm9tQm91bmRpbmdCb3goYm94KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWNvZGVGcm9tQm91bmRpbmdCb3hlczogZnVuY3Rpb24oYm94ZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgaSwgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBiYXJjb2RlcyA9IFtdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSA9IGNvbmZpZy5tdWx0aXBsZTtcblxuICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYm94ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm94ID0gYm94ZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlY29kZUZyb21Cb3VuZGluZ0JveChib3gpIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQuYm94ID0gYm94O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFyY29kZXMucHVzaChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5jb2RlUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXJjb2Rlc1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRSZWFkZXJzOiBmdW5jdGlvbihyZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLnJlYWRlcnMgPSByZWFkZXJzO1xuICAgICAgICAgICAgICAgIF9iYXJjb2RlUmVhZGVycy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgIGluaXRSZWFkZXJzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9kZWNvZGVyL2JhcmNvZGVfZGVjb2Rlci5qcyIsImltcG9ydCBJbWFnZVdyYXBwZXIgZnJvbSAnLi4vY29tbW9uL2ltYWdlX3dyYXBwZXInO1xuXG52YXIgQnJlc2VuaGFtID0ge307XG5cbnZhciBTbG9wZSA9IHtcbiAgICBESVI6IHtcbiAgICAgICAgVVA6IDEsXG4gICAgICAgIERPV046IC0xXG4gICAgfVxufTtcbi8qKlxuICogU2NhbnMgYSBsaW5lIG9mIHRoZSBnaXZlbiBpbWFnZSBmcm9tIHBvaW50IHAxIHRvIHAyIGFuZCByZXR1cm5zIGEgcmVzdWx0IG9iamVjdCBjb250YWluaW5nXG4gKiBncmF5LXNjYWxlIHZhbHVlcyAoMC0yNTUpIG9mIHRoZSB1bmRlcmx5aW5nIHBpeGVscyBpbiBhZGRpdGlvbiB0byB0aGUgbWluXG4gKiBhbmQgbWF4IHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBpbWFnZVdyYXBwZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwMSBUaGUgc3RhcnQgcG9pbnQge3gseX1cbiAqIEBwYXJhbSB7T2JqZWN0fSBwMiBUaGUgZW5kIHBvaW50IHt4LHl9XG4gKiBAcmV0dXJucyB7bGluZSwgbWluLCBtYXh9XG4gKi9cbkJyZXNlbmhhbS5nZXRCYXJjb2RlTGluZSA9IGZ1bmN0aW9uKGltYWdlV3JhcHBlciwgcDEsIHAyKSB7XG4gICAgdmFyIHgwID0gcDEueCB8IDAsXG4gICAgICAgIHkwID0gcDEueSB8IDAsXG4gICAgICAgIHgxID0gcDIueCB8IDAsXG4gICAgICAgIHkxID0gcDIueSB8IDAsXG4gICAgICAgIHN0ZWVwID0gTWF0aC5hYnMoeTEgLSB5MCkgPiBNYXRoLmFicyh4MSAtIHgwKSxcbiAgICAgICAgZGVsdGF4LFxuICAgICAgICBkZWx0YXksXG4gICAgICAgIGVycm9yLFxuICAgICAgICB5c3RlcCxcbiAgICAgICAgeSxcbiAgICAgICAgdG1wLFxuICAgICAgICB4LFxuICAgICAgICBsaW5lID0gW10sXG4gICAgICAgIGltYWdlRGF0YSA9IGltYWdlV3JhcHBlci5kYXRhLFxuICAgICAgICB3aWR0aCA9IGltYWdlV3JhcHBlci5zaXplLngsXG4gICAgICAgIHN1bSA9IDAsXG4gICAgICAgIHZhbCxcbiAgICAgICAgbWluID0gMjU1LFxuICAgICAgICBtYXggPSAwO1xuXG4gICAgZnVuY3Rpb24gcmVhZChhLCBiKSB7XG4gICAgICAgIHZhbCA9IGltYWdlRGF0YVtiICogd2lkdGggKyBhXTtcbiAgICAgICAgc3VtICs9IHZhbDtcbiAgICAgICAgbWluID0gdmFsIDwgbWluID8gdmFsIDogbWluO1xuICAgICAgICBtYXggPSB2YWwgPiBtYXggPyB2YWwgOiBtYXg7XG4gICAgICAgIGxpbmUucHVzaCh2YWwpO1xuICAgIH1cblxuICAgIGlmIChzdGVlcCkge1xuICAgICAgICB0bXAgPSB4MDtcbiAgICAgICAgeDAgPSB5MDtcbiAgICAgICAgeTAgPSB0bXA7XG5cbiAgICAgICAgdG1wID0geDE7XG4gICAgICAgIHgxID0geTE7XG4gICAgICAgIHkxID0gdG1wO1xuICAgIH1cbiAgICBpZiAoeDAgPiB4MSkge1xuICAgICAgICB0bXAgPSB4MDtcbiAgICAgICAgeDAgPSB4MTtcbiAgICAgICAgeDEgPSB0bXA7XG5cbiAgICAgICAgdG1wID0geTA7XG4gICAgICAgIHkwID0geTE7XG4gICAgICAgIHkxID0gdG1wO1xuICAgIH1cbiAgICBkZWx0YXggPSB4MSAtIHgwO1xuICAgIGRlbHRheSA9IE1hdGguYWJzKHkxIC0geTApO1xuICAgIGVycm9yID0gKGRlbHRheCAvIDIpIHwgMDtcbiAgICB5ID0geTA7XG4gICAgeXN0ZXAgPSB5MCA8IHkxID8gMSA6IC0xO1xuICAgIGZvciAoIHggPSB4MDsgeCA8IHgxOyB4KyspIHtcbiAgICAgICAgaWYgKHN0ZWVwKXtcbiAgICAgICAgICAgIHJlYWQoeSwgeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWFkKHgsIHkpO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yID0gZXJyb3IgLSBkZWx0YXk7XG4gICAgICAgIGlmIChlcnJvciA8IDApIHtcbiAgICAgICAgICAgIHkgPSB5ICsgeXN0ZXA7XG4gICAgICAgICAgICBlcnJvciA9IGVycm9yICsgZGVsdGF4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGluZTogbGluZSxcbiAgICAgICAgbWluOiBtaW4sXG4gICAgICAgIG1heDogbWF4XG4gICAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgdGhlIHJlc3VsdCBmcm9tIGdldEJhcmNvZGVMaW5lIGludG8gYSBiaW5hcnkgcmVwcmVzZW50YXRpb25cbiAqIGFsc28gY29uc2lkZXJpbmcgdGhlIGZyZXF1ZW5jeSBhbmQgc2xvcGUgb2YgdGhlIHNpZ25hbCBmb3IgbW9yZSByb2J1c3QgcmVzdWx0c1xuICogQHBhcmFtIHtPYmplY3R9IHJlc3VsdCB7bGluZSwgbWluLCBtYXh9XG4gKi9cbkJyZXNlbmhhbS50b0JpbmFyeUxpbmUgPSBmdW5jdGlvbihyZXN1bHQpIHtcbiAgICB2YXIgbWluID0gcmVzdWx0Lm1pbixcbiAgICAgICAgbWF4ID0gcmVzdWx0Lm1heCxcbiAgICAgICAgbGluZSA9IHJlc3VsdC5saW5lLFxuICAgICAgICBzbG9wZSxcbiAgICAgICAgc2xvcGUyLFxuICAgICAgICBjZW50ZXIgPSBtaW4gKyAobWF4IC0gbWluKSAvIDIsXG4gICAgICAgIGV4dHJlbWEgPSBbXSxcbiAgICAgICAgY3VycmVudERpcixcbiAgICAgICAgZGlyLFxuICAgICAgICB0aHJlc2hvbGQgPSAobWF4IC0gbWluKSAvIDEyLFxuICAgICAgICByVGhyZXNob2xkID0gLXRocmVzaG9sZCxcbiAgICAgICAgaSxcbiAgICAgICAgajtcblxuICAgIC8vIDEuIGZpbmQgZXh0cmVtYVxuICAgIGN1cnJlbnREaXIgPSBsaW5lWzBdID4gY2VudGVyID8gU2xvcGUuRElSLlVQIDogU2xvcGUuRElSLkRPV047XG4gICAgZXh0cmVtYS5wdXNoKHtcbiAgICAgICAgcG9zOiAwLFxuICAgICAgICB2YWw6IGxpbmVbMF1cbiAgICB9KTtcbiAgICBmb3IgKCBpID0gMDsgaSA8IGxpbmUubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgIHNsb3BlID0gKGxpbmVbaSArIDFdIC0gbGluZVtpXSk7XG4gICAgICAgIHNsb3BlMiA9IChsaW5lW2kgKyAyXSAtIGxpbmVbaSArIDFdKTtcbiAgICAgICAgaWYgKChzbG9wZSArIHNsb3BlMikgPCByVGhyZXNob2xkICYmIGxpbmVbaSArIDFdIDwgKGNlbnRlciAqIDEuNSkpIHtcbiAgICAgICAgICAgIGRpciA9IFNsb3BlLkRJUi5ET1dOO1xuICAgICAgICB9IGVsc2UgaWYgKChzbG9wZSArIHNsb3BlMikgPiB0aHJlc2hvbGQgJiYgbGluZVtpICsgMV0gPiAoY2VudGVyICogMC41KSkge1xuICAgICAgICAgICAgZGlyID0gU2xvcGUuRElSLlVQO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlyID0gY3VycmVudERpcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjdXJyZW50RGlyICE9PSBkaXIpIHtcbiAgICAgICAgICAgIGV4dHJlbWEucHVzaCh7XG4gICAgICAgICAgICAgICAgcG9zOiBpLFxuICAgICAgICAgICAgICAgIHZhbDogbGluZVtpXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjdXJyZW50RGlyID0gZGlyO1xuICAgICAgICB9XG4gICAgfVxuICAgIGV4dHJlbWEucHVzaCh7XG4gICAgICAgIHBvczogbGluZS5sZW5ndGgsXG4gICAgICAgIHZhbDogbGluZVtsaW5lLmxlbmd0aCAtIDFdXG4gICAgfSk7XG5cbiAgICBmb3IgKCBqID0gZXh0cmVtYVswXS5wb3M7IGogPCBleHRyZW1hWzFdLnBvczsgaisrKSB7XG4gICAgICAgIGxpbmVbal0gPSBsaW5lW2pdID4gY2VudGVyID8gMCA6IDE7XG4gICAgfVxuXG4gICAgLy8gaXRlcmF0ZSBvdmVyIGV4dHJlbWEgYW5kIGNvbnZlcnQgdG8gYmluYXJ5IGJhc2VkIG9uIGF2ZyBiZXR3ZWVuIG1pbm1heFxuICAgIGZvciAoIGkgPSAxOyBpIDwgZXh0cmVtYS5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYgKGV4dHJlbWFbaSArIDFdLnZhbCA+IGV4dHJlbWFbaV0udmFsKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGQgPSAoZXh0cmVtYVtpXS52YWwgKyAoKGV4dHJlbWFbaSArIDFdLnZhbCAtIGV4dHJlbWFbaV0udmFsKSAvIDMpICogMikgfCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyZXNob2xkID0gKGV4dHJlbWFbaSArIDFdLnZhbCArICgoZXh0cmVtYVtpXS52YWwgLSBleHRyZW1hW2kgKyAxXS52YWwpIC8gMykpIHwgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoIGogPSBleHRyZW1hW2ldLnBvczsgaiA8IGV4dHJlbWFbaSArIDFdLnBvczsgaisrKSB7XG4gICAgICAgICAgICBsaW5lW2pdID0gbGluZVtqXSA+IHRocmVzaG9sZCA/IDAgOiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGluZTogbGluZSxcbiAgICAgICAgdGhyZXNob2xkOiB0aHJlc2hvbGRcbiAgICB9O1xufTtcblxuLyoqXG4gKiBVc2VkIGZvciBkZXZlbG9wbWVudCBvbmx5XG4gKi9cbkJyZXNlbmhhbS5kZWJ1ZyA9IHtcbiAgICBwcmludEZyZXF1ZW5jeTogZnVuY3Rpb24obGluZSwgY2FudmFzKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgICAgICAgY2FudmFzLndpZHRoID0gbGluZS5sZW5ndGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSAyNTY7XG5cbiAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBcImJsdWVcIjtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjdHgubW92ZVRvKGksIDI1NSk7XG4gICAgICAgICAgICBjdHgubGluZVRvKGksIDI1NSAtIGxpbmVbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICAgICAgY3R4LmNsb3NlUGF0aCgpO1xuICAgIH0sXG5cbiAgICBwcmludFBhdHRlcm46IGZ1bmN0aW9uKGxpbmUsIGNhbnZhcykge1xuICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKSwgaTtcblxuICAgICAgICBjYW52YXMud2lkdGggPSBsaW5lLmxlbmd0aDtcbiAgICAgICAgY3R4LmZpbGxDb2xvciA9IFwiYmxhY2tcIjtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAobGluZVtpXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGN0eC5maWxsUmVjdChpLCAwLCAxLCAxMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQnJlc2VuaGFtO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2RlY29kZXIvYnJlc2VuaGFtLmpzIiwiaW1wb3J0IHtvbWl0LCBwaWNrfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtnZXRVc2VyTWVkaWEsIGVudW1lcmF0ZURldmljZXN9IGZyb20gJ21lZGlhRGV2aWNlcyc7XG5cbmNvbnN0IGZhY2luZ01hdGNoaW5nID0ge1xuICAgIFwidXNlclwiOiAvZnJvbnQvaSxcbiAgICBcImVudmlyb25tZW50XCI6IC9iYWNrL2lcbn07XG5cbnZhciBzdHJlYW1SZWY7XG5cbmZ1bmN0aW9uIHdhaXRGb3JWaWRlbyh2aWRlbykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBhdHRlbXB0cyA9IDEwO1xuXG4gICAgICAgIGZ1bmN0aW9uIGNoZWNrVmlkZW8oKSB7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZGVvLnZpZGVvV2lkdGggPiAxMCAmJiB2aWRlby52aWRlb0hlaWdodCA+IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHZpZGVvLnZpZGVvV2lkdGggKyBcInB4IHggXCIgKyB2aWRlby52aWRlb0hlaWdodCArIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrVmlkZW8sIDUwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWplY3QoJ1VuYWJsZSB0byBwbGF5IHZpZGVvIHN0cmVhbS4gSXMgd2ViY2FtIHdvcmtpbmc/Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhdHRlbXB0cy0tO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrVmlkZW8oKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBUcmllcyB0byBhdHRhY2ggdGhlIGNhbWVyYS1zdHJlYW0gdG8gYSBnaXZlbiB2aWRlby1lbGVtZW50XG4gKiBhbmQgY2FsbHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVhZHlcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25zdHJhaW50c1xuICogQHBhcmFtIHtPYmplY3R9IHZpZGVvXG4gKi9cbmZ1bmN0aW9uIGluaXRDYW1lcmEodmlkZW8sIGNvbnN0cmFpbnRzKSB7XG4gICAgcmV0dXJuIGdldFVzZXJNZWRpYShjb25zdHJhaW50cylcbiAgICAudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgc3RyZWFtUmVmID0gc3RyZWFtO1xuICAgICAgICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKFwiYXV0b3BsYXlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ211dGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ3BsYXlzaW5saW5lJywgdHJ1ZSk7XG4gICAgICAgICAgICB2aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsICgpID0+IHtcbiAgICAgICAgICAgICAgICB2aWRlby5wbGF5KCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pXG4gICAgLnRoZW4od2FpdEZvclZpZGVvLmJpbmQobnVsbCwgdmlkZW8pKTtcbn1cblxuZnVuY3Rpb24gZGVwcmVjYXRlZENvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMpIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gcGljayh2aWRlb0NvbnN0cmFpbnRzLCBbXCJ3aWR0aFwiLCBcImhlaWdodFwiLCBcImZhY2luZ01vZGVcIixcbiAgICAgICAgICAgIFwiYXNwZWN0UmF0aW9cIiwgXCJkZXZpY2VJZFwiXSk7XG5cbiAgICBpZiAodHlwZW9mIHZpZGVvQ29uc3RyYWludHMubWluQXNwZWN0UmF0aW8gIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLm1pbkFzcGVjdFJhdGlvID4gMCkge1xuICAgICAgICBub3JtYWxpemVkLmFzcGVjdFJhdGlvID0gdmlkZW9Db25zdHJhaW50cy5taW5Bc3BlY3RSYXRpbztcbiAgICAgICAgY29uc29sZS5sb2coXCJXQVJOSU5HOiBDb25zdHJhaW50ICdtaW5Bc3BlY3RSYXRpbycgaXMgZGVwcmVjYXRlZDsgVXNlICdhc3BlY3RSYXRpbycgaW5zdGVhZFwiKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2aWRlb0NvbnN0cmFpbnRzLmZhY2luZyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbm9ybWFsaXplZC5mYWNpbmdNb2RlID0gdmlkZW9Db25zdHJhaW50cy5mYWNpbmc7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiV0FSTklORzogQ29uc3RyYWludCAnZmFjaW5nJyBpcyBkZXByZWNhdGVkLiBVc2UgJ2ZhY2luZ01vZGUnIGluc3RlYWQnXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2tDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZENvbnN0cmFpbnRzID0ge1xuICAgICAgICBhdWRpbzogZmFsc2UsXG4gICAgICAgIHZpZGVvOiBkZXByZWNhdGVkQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cylcbiAgICB9O1xuXG4gICAgaWYgKG5vcm1hbGl6ZWRDb25zdHJhaW50cy52aWRlby5kZXZpY2VJZFxuICAgICAgICAgICAgJiYgbm9ybWFsaXplZENvbnN0cmFpbnRzLnZpZGVvLmZhY2luZ01vZGUpIHtcbiAgICAgICAgZGVsZXRlIG5vcm1hbGl6ZWRDb25zdHJhaW50cy52aWRlby5mYWNpbmdNb2RlO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vcm1hbGl6ZWRDb25zdHJhaW50cyk7XG59XG5cbmZ1bmN0aW9uIGVudW1lcmF0ZVZpZGVvRGV2aWNlcygpIHtcbiAgICByZXR1cm4gZW51bWVyYXRlRGV2aWNlcygpXG4gICAgLnRoZW4oZGV2aWNlcyA9PiBkZXZpY2VzLmZpbHRlcihkZXZpY2UgPT4gZGV2aWNlLmtpbmQgPT09ICd2aWRlb2lucHV0JykpO1xufVxuXG5mdW5jdGlvbiBnZXRBY3RpdmVUcmFjaygpIHtcbiAgICBpZiAoc3RyZWFtUmVmKSB7XG4gICAgICAgIGNvbnN0IHRyYWNrcyA9IHN0cmVhbVJlZi5nZXRWaWRlb1RyYWNrcygpO1xuICAgICAgICBpZiAodHJhY2tzICYmIHRyYWNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0cmFja3NbMF07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICByZXF1ZXN0OiBmdW5jdGlvbih2aWRlbywgdmlkZW9Db25zdHJhaW50cykge1xuICAgICAgICByZXR1cm4gcGlja0NvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMpXG4gICAgICAgICAgICAudGhlbihpbml0Q2FtZXJhLmJpbmQobnVsbCwgdmlkZW8pKTtcbiAgICB9LFxuICAgIHJlbGVhc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgdHJhY2tzID0gc3RyZWFtUmVmICYmIHN0cmVhbVJlZi5nZXRWaWRlb1RyYWNrcygpO1xuICAgICAgICBpZiAodHJhY2tzICYmIHRyYWNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRyYWNrc1swXS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RyZWFtUmVmID0gbnVsbDtcbiAgICB9LFxuICAgIGVudW1lcmF0ZVZpZGVvRGV2aWNlcyxcbiAgICBnZXRBY3RpdmVTdHJlYW1MYWJlbDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IHRyYWNrID0gZ2V0QWN0aXZlVHJhY2soKTtcbiAgICAgICAgcmV0dXJuIHRyYWNrID8gdHJhY2subGFiZWwgOiAnJztcbiAgICB9LFxuICAgIGdldEFjdGl2ZVRyYWNrXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2NhbWVyYV9hY2Nlc3MuanMiLCIvLyBTY3JhcGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2V4aWYtanMvZXhpZi1qc1xuXG5jb25zdCBFeGlmVGFncyA9IHsweDAxMTI6IFwib3JpZW50YXRpb25cIn07XG5leHBvcnQgY29uc3QgQXZhaWxhYmxlVGFncyA9IE9iamVjdC5rZXlzKEV4aWZUYWdzKS5tYXAoa2V5ID0+IEV4aWZUYWdzW2tleV0pO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZFRhZ3NJbk9iamVjdFVSTChzcmMsIHRhZ3MgPSBBdmFpbGFibGVUYWdzKSB7XG4gICAgaWYgKC9eYmxvYlxcOi9pLnRlc3Qoc3JjKSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0VVJMVG9CbG9iKHNyYylcbiAgICAgICAgICAgIC50aGVuKHJlYWRUb0J1ZmZlcilcbiAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiBmaW5kVGFnc0luQnVmZmVyKGJ1ZmZlciwgdGFncykpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9BcnJheUJ1ZmZlcihkYXRhVXJsKSB7XG4gICAgY29uc3QgYmFzZTY0ID0gZGF0YVVybC5yZXBsYWNlKC9eZGF0YVxcOihbXlxcO10rKVxcO2Jhc2U2NCwvZ21pLCAnJyksXG4gICAgICAgIGJpbmFyeSA9IGF0b2IoYmFzZTY0KSxcbiAgICAgICAgbGVuID0gYmluYXJ5Lmxlbmd0aCxcbiAgICAgICAgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbiksXG4gICAgICAgIHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB2aWV3W2ldID0gYmluYXJ5LmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG59XG5cbmZ1bmN0aW9uIHJlYWRUb0J1ZmZlcihibG9iKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpO1xuICAgICAgICB9O1xuICAgICAgICBmaWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBvYmplY3RVUkxUb0Jsb2IodXJsKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaHR0cCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgICBodHRwLm9wZW4oXCJHRVRcIiwgdXJsLCB0cnVlKTtcbiAgICAgICAgaHR0cC5yZXNwb25zZVR5cGUgPSBcImJsb2JcIjtcbiAgICAgICAgaHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoaHR0cC5yZWFkeVN0YXRlID09PSBYTUxIdHRwUmVxdWVzdC5ET05FICYmIChodHRwLnN0YXR1cyA9PT0gMjAwIHx8IGh0dHAuc3RhdHVzID09PSAwKSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5yZXNwb25zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGh0dHAub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgaHR0cC5zZW5kKCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kVGFnc0luQnVmZmVyKGZpbGUsIHNlbGVjdGVkVGFncyA9IEF2YWlsYWJsZVRhZ3MpIHtcbiAgICBjb25zdCBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhmaWxlKSxcbiAgICAgICAgbGVuZ3RoID0gZmlsZS5ieXRlTGVuZ3RoLFxuICAgICAgICBleGlmVGFncyA9IHNlbGVjdGVkVGFncy5yZWR1Y2UoKHJlc3VsdCwgc2VsZWN0ZWRUYWcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aWZUYWcgPSBPYmplY3Qua2V5cyhFeGlmVGFncykuZmlsdGVyKHRhZyA9PiBFeGlmVGFnc1t0YWddID09PSBzZWxlY3RlZFRhZylbMF07XG4gICAgICAgICAgICBpZiAoZXhpZlRhZykge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtleGlmVGFnXSA9IHNlbGVjdGVkVGFnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgIGxldCBvZmZzZXQgPSAyLFxuICAgICAgICBtYXJrZXI7XG5cbiAgICBpZiAoKGRhdGFWaWV3LmdldFVpbnQ4KDApICE9PSAweEZGKSB8fCAoZGF0YVZpZXcuZ2V0VWludDgoMSkgIT09IDB4RDgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoKSB7XG4gICAgICAgIGlmIChkYXRhVmlldy5nZXRVaW50OChvZmZzZXQpICE9PSAweEZGKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJrZXIgPSBkYXRhVmlldy5nZXRVaW50OChvZmZzZXQgKyAxKTtcbiAgICAgICAgaWYgKG1hcmtlciA9PT0gMHhFMSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlYWRFWElGRGF0YShkYXRhVmlldywgb2Zmc2V0ICsgNCwgZXhpZlRhZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2Zmc2V0ICs9IDIgKyBkYXRhVmlldy5nZXRVaW50MTYob2Zmc2V0ICsgMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRFWElGRGF0YShmaWxlLCBzdGFydCwgZXhpZlRhZ3MpIHtcbiAgICBpZiAoZ2V0U3RyaW5nRnJvbUJ1ZmZlcihmaWxlLCBzdGFydCwgNCkgIT09IFwiRXhpZlwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB0aWZmT2Zmc2V0ID0gc3RhcnQgKyA2O1xuICAgIGxldCBiaWdFbmQsXG4gICAgICAgIHRhZ3M7XG5cbiAgICBpZiAoZmlsZS5nZXRVaW50MTYodGlmZk9mZnNldCkgPT09IDB4NDk0OSkge1xuICAgICAgICBiaWdFbmQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGZpbGUuZ2V0VWludDE2KHRpZmZPZmZzZXQpID09PSAweDRENEQpIHtcbiAgICAgICAgYmlnRW5kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGZpbGUuZ2V0VWludDE2KHRpZmZPZmZzZXQgKyAyLCAhYmlnRW5kKSAhPT0gMHgwMDJBKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdElGRE9mZnNldCA9IGZpbGUuZ2V0VWludDMyKHRpZmZPZmZzZXQgKyA0LCAhYmlnRW5kKTtcbiAgICBpZiAoZmlyc3RJRkRPZmZzZXQgPCAweDAwMDAwMDA4KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0YWdzID0gcmVhZFRhZ3MoZmlsZSwgdGlmZk9mZnNldCwgdGlmZk9mZnNldCArIGZpcnN0SUZET2Zmc2V0LCBleGlmVGFncywgYmlnRW5kKTtcbiAgICByZXR1cm4gdGFncztcbn1cblxuZnVuY3Rpb24gcmVhZFRhZ3MoZmlsZSwgdGlmZlN0YXJ0LCBkaXJTdGFydCwgc3RyaW5ncywgYmlnRW5kKSB7XG4gICAgY29uc3QgZW50cmllcyA9IGZpbGUuZ2V0VWludDE2KGRpclN0YXJ0LCAhYmlnRW5kKSxcbiAgICAgICAgdGFncyA9IHt9O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHtcbiAgICAgICAgY29uc3QgZW50cnlPZmZzZXQgPSBkaXJTdGFydCArIGkgKiAxMiArIDIsXG4gICAgICAgICAgICB0YWcgPSBzdHJpbmdzW2ZpbGUuZ2V0VWludDE2KGVudHJ5T2Zmc2V0LCAhYmlnRW5kKV07XG4gICAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgICAgIHRhZ3NbdGFnXSA9IHJlYWRUYWdWYWx1ZShmaWxlLCBlbnRyeU9mZnNldCwgdGlmZlN0YXJ0LCBkaXJTdGFydCwgYmlnRW5kKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGFncztcbn1cblxuZnVuY3Rpb24gcmVhZFRhZ1ZhbHVlKGZpbGUsIGVudHJ5T2Zmc2V0LCB0aWZmU3RhcnQsIGRpclN0YXJ0LCBiaWdFbmQpIHtcbiAgICBjb25zdCB0eXBlID0gZmlsZS5nZXRVaW50MTYoZW50cnlPZmZzZXQgKyAyLCAhYmlnRW5kKSxcbiAgICAgICAgbnVtVmFsdWVzID0gZmlsZS5nZXRVaW50MzIoZW50cnlPZmZzZXQgKyA0LCAhYmlnRW5kKTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgMzpcbiAgICAgICAgaWYgKG51bVZhbHVlcyA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpbGUuZ2V0VWludDE2KGVudHJ5T2Zmc2V0ICsgOCwgIWJpZ0VuZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldFN0cmluZ0Zyb21CdWZmZXIoYnVmZmVyLCBzdGFydCwgbGVuZ3RoKSB7XG4gICAgbGV0IG91dHN0ciA9IFwiXCI7XG4gICAgZm9yIChsZXQgbiA9IHN0YXJ0OyBuIDwgc3RhcnQgKyBsZW5ndGg7IG4rKykge1xuICAgICAgICBvdXRzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZmZXIuZ2V0VWludDgobikpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0c3RyO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2V4aWZfaGVscGVyLmpzIiwiaW1wb3J0IHtcbiAgICBpbWFnZVJlZixcbiAgICBncmF5QW5kSGFsZlNhbXBsZUZyb21DYW52YXNEYXRhLFxuICAgIGNvbXB1dGVHcmF5XG59IGZyb20gJy4uL2NvbW1vbi9jdl91dGlscyc7XG5cbmNvbnN0IFRPX1JBRElBTlMgPSBNYXRoLlBJIC8gMTgwO1xuXG5mdW5jdGlvbiBhZGp1c3RDYW52YXNTaXplKGNhbnZhcywgdGFyZ2V0U2l6ZSkge1xuICAgIGlmIChjYW52YXMud2lkdGggIT09IHRhcmdldFNpemUueCkge1xuICAgICAgICBpZiAoRU5WLmRldmVsb3BtZW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIldBUk5JTkc6IGNhbnZhcy1zaXplIG5lZWRzIHRvIGJlIGFkanVzdGVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHRhcmdldFNpemUueDtcbiAgICB9XG4gICAgaWYgKGNhbnZhcy5oZWlnaHQgIT09IHRhcmdldFNpemUueSkge1xuICAgICAgICBpZiAoRU5WLmRldmVsb3BtZW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIldBUk5JTkc6IGNhbnZhcy1zaXplIG5lZWRzIHRvIGJlIGFkanVzdGVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0YXJnZXRTaXplLnk7XG4gICAgfVxufVxuXG52YXIgRnJhbWVHcmFiYmVyID0ge307XG5cbkZyYW1lR3JhYmJlci5jcmVhdGUgPSBmdW5jdGlvbihpbnB1dFN0cmVhbSwgY2FudmFzKSB7XG4gICAgdmFyIF90aGF0ID0ge30sXG4gICAgICAgIF9zdHJlYW1Db25maWcgPSBpbnB1dFN0cmVhbS5nZXRDb25maWcoKSxcbiAgICAgICAgX3ZpZGVvX3NpemUgPSBpbWFnZVJlZihpbnB1dFN0cmVhbS5nZXRSZWFsV2lkdGgoKSwgaW5wdXRTdHJlYW0uZ2V0UmVhbEhlaWdodCgpKSxcbiAgICAgICAgX2NhbnZhc1NpemUgPSBpbnB1dFN0cmVhbS5nZXRDYW52YXNTaXplKCksXG4gICAgICAgIF9zaXplID0gaW1hZ2VSZWYoaW5wdXRTdHJlYW0uZ2V0V2lkdGgoKSwgaW5wdXRTdHJlYW0uZ2V0SGVpZ2h0KCkpLFxuICAgICAgICB0b3BSaWdodCA9IGlucHV0U3RyZWFtLmdldFRvcFJpZ2h0KCksXG4gICAgICAgIF9zeCA9IHRvcFJpZ2h0LngsXG4gICAgICAgIF9zeSA9IHRvcFJpZ2h0LnksXG4gICAgICAgIF9jYW52YXMsXG4gICAgICAgIF9jdHggPSBudWxsLFxuICAgICAgICBfZGF0YSA9IG51bGw7XG5cbiAgICBfY2FudmFzID0gY2FudmFzID8gY2FudmFzIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBfY2FudmFzLndpZHRoID0gX2NhbnZhc1NpemUueDtcbiAgICBfY2FudmFzLmhlaWdodCA9IF9jYW52YXNTaXplLnk7XG4gICAgX2N0eCA9IF9jYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICAgIF9kYXRhID0gbmV3IFVpbnQ4QXJyYXkoX3NpemUueCAqIF9zaXplLnkpO1xuICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJGcmFtZUdyYWJiZXJcIiwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgc2l6ZTogX3NpemUsXG4gICAgICAgICAgICB0b3BSaWdodDogdG9wUmlnaHQsXG4gICAgICAgICAgICB2aWRlb1NpemU6IF92aWRlb19zaXplLFxuICAgICAgICAgICAgY2FudmFzU2l6ZTogX2NhbnZhc1NpemVcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZXMgdGhlIGdpdmVuIGFycmF5IGFzIGZyYW1lLWJ1ZmZlclxuICAgICAqL1xuICAgIF90aGF0LmF0dGFjaERhdGEgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIF9kYXRhID0gZGF0YTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdXNlZCBmcmFtZS1idWZmZXJcbiAgICAgKi9cbiAgICBfdGhhdC5nZXREYXRhID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfZGF0YTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyBhIGZyYW1lIGZyb20gdGhlIGlucHV0LXN0cmVhbSBhbmQgcHV0cyBpbnRvIHRoZSBmcmFtZS1idWZmZXIuXG4gICAgICogVGhlIGltYWdlLWRhdGEgaXMgY29udmVydGVkIHRvIGdyYXktc2NhbGUgYW5kIHRoZW4gaGFsZi1zYW1wbGVkIGlmIGNvbmZpZ3VyZWQuXG4gICAgICovXG4gICAgX3RoYXQuZ3JhYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgZG9IYWxmU2FtcGxlID0gX3N0cmVhbUNvbmZpZy5oYWxmU2FtcGxlLFxuICAgICAgICAgICAgZnJhbWUgPSBpbnB1dFN0cmVhbS5nZXRGcmFtZSgpLFxuICAgICAgICAgICAgZHJhd2FibGUgPSBmcmFtZSxcbiAgICAgICAgICAgIGRyYXdBbmdsZSA9IDAsXG4gICAgICAgICAgICBjdHhEYXRhO1xuICAgICAgICBpZiAoZHJhd2FibGUpIHtcbiAgICAgICAgICAgIGFkanVzdENhbnZhc1NpemUoX2NhbnZhcywgX2NhbnZhc1NpemUpO1xuICAgICAgICAgICAgaWYgKF9zdHJlYW1Db25maWcudHlwZSA9PT0gJ0ltYWdlU3RyZWFtJykge1xuICAgICAgICAgICAgICAgIGRyYXdhYmxlID0gZnJhbWUuaW1nO1xuICAgICAgICAgICAgICAgIGlmIChmcmFtZS50YWdzICYmIGZyYW1lLnRhZ3Mub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChmcmFtZS50YWdzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdBbmdsZSA9IDkwICogVE9fUkFESUFOUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgICAgICAgICBkcmF3QW5nbGUgPSAtOTAgKiBUT19SQURJQU5TO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkcmF3QW5nbGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICBfY3R4LnRyYW5zbGF0ZShfY2FudmFzU2l6ZS54IC8gMiwgX2NhbnZhc1NpemUueSAvIDIpO1xuICAgICAgICAgICAgICAgIF9jdHgucm90YXRlKGRyYXdBbmdsZSk7XG4gICAgICAgICAgICAgICAgX2N0eC5kcmF3SW1hZ2UoZHJhd2FibGUsIC1fY2FudmFzU2l6ZS55IC8gMiwgLV9jYW52YXNTaXplLnggLyAyLCBfY2FudmFzU2l6ZS55LCBfY2FudmFzU2l6ZS54KTtcbiAgICAgICAgICAgICAgICBfY3R4LnJvdGF0ZSgtZHJhd0FuZ2xlKTtcbiAgICAgICAgICAgICAgICBfY3R4LnRyYW5zbGF0ZSgtX2NhbnZhc1NpemUueCAvIDIsIC1fY2FudmFzU2l6ZS55IC8gMik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIF9jdHguZHJhd0ltYWdlKGRyYXdhYmxlLCAwLCAwLCBfY2FudmFzU2l6ZS54LCBfY2FudmFzU2l6ZS55KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3R4RGF0YSA9IF9jdHguZ2V0SW1hZ2VEYXRhKF9zeCwgX3N5LCBfc2l6ZS54LCBfc2l6ZS55KS5kYXRhO1xuICAgICAgICAgICAgaWYgKGRvSGFsZlNhbXBsZSl7XG4gICAgICAgICAgICAgICAgZ3JheUFuZEhhbGZTYW1wbGVGcm9tQ2FudmFzRGF0YShjdHhEYXRhLCBfc2l6ZSwgX2RhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlR3JheShjdHhEYXRhLCBfZGF0YSwgX3N0cmVhbUNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhhdC5nZXRTaXplID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2l6ZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGF0O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRnJhbWVHcmFiYmVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2ZyYW1lX2dyYWJiZXIuanMiLCJpbXBvcnQge2ZpbmRUYWdzSW5PYmplY3RVUkx9IGZyb20gJy4vZXhpZl9oZWxwZXInO1xuXG52YXIgSW1hZ2VMb2FkZXIgPSB7fTtcbkltYWdlTG9hZGVyLmxvYWQgPSBmdW5jdGlvbihkaXJlY3RvcnksIGNhbGxiYWNrLCBvZmZzZXQsIHNpemUsIHNlcXVlbmNlKSB7XG4gICAgdmFyIGh0bWxJbWFnZXNTcmNBcnJheSA9IG5ldyBBcnJheShzaXplKSxcbiAgICAgICAgaHRtbEltYWdlc0FycmF5ID0gbmV3IEFycmF5KGh0bWxJbWFnZXNTcmNBcnJheS5sZW5ndGgpLFxuICAgICAgICBpLFxuICAgICAgICBpbWcsXG4gICAgICAgIG51bTtcblxuICAgIGlmIChzZXF1ZW5jZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgaHRtbEltYWdlc1NyY0FycmF5WzBdID0gZGlyZWN0b3J5O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgaHRtbEltYWdlc1NyY0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBudW0gPSAob2Zmc2V0ICsgaSk7XG4gICAgICAgICAgICBodG1sSW1hZ2VzU3JjQXJyYXlbaV0gPSBkaXJlY3RvcnkgKyBcImltYWdlLVwiICsgKFwiMDBcIiArIG51bSkuc2xpY2UoLTMpICsgXCIuanBnXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaHRtbEltYWdlc0FycmF5Lm5vdExvYWRlZCA9IFtdO1xuICAgIGh0bWxJbWFnZXNBcnJheS5hZGRJbWFnZSA9IGZ1bmN0aW9uKGltYWdlKSB7XG4gICAgICAgIGh0bWxJbWFnZXNBcnJheS5ub3RMb2FkZWQucHVzaChpbWFnZSk7XG4gICAgfTtcbiAgICBodG1sSW1hZ2VzQXJyYXkubG9hZGVkID0gZnVuY3Rpb24obG9hZGVkSW1nKSB7XG4gICAgICAgIHZhciBub3Rsb2FkZWRJbWdzID0gaHRtbEltYWdlc0FycmF5Lm5vdExvYWRlZDtcbiAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPCBub3Rsb2FkZWRJbWdzLmxlbmd0aDsgeCsrKSB7XG4gICAgICAgICAgICBpZiAobm90bG9hZGVkSW1nc1t4XSA9PT0gbG9hZGVkSW1nKSB7XG4gICAgICAgICAgICAgICAgbm90bG9hZGVkSW1ncy5zcGxpY2UoeCwgMSk7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBodG1sSW1hZ2VzU3JjQXJyYXkubGVuZ3RoOyB5KyspIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGltZ05hbWUgPSBodG1sSW1hZ2VzU3JjQXJyYXlbeV0uc3Vic3RyKGh0bWxJbWFnZXNTcmNBcnJheVt5XS5sYXN0SW5kZXhPZihcIi9cIikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGVkSW1nLnNyYy5sYXN0SW5kZXhPZihpbWdOYW1lKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxJbWFnZXNBcnJheVt5XSA9IHtpbWc6IGxvYWRlZEltZ307XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm90bG9hZGVkSW1ncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkltYWdlcyBsb2FkZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VxdWVuY2UgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgZmluZFRhZ3NJbk9iamVjdFVSTChkaXJlY3RvcnksIFsnb3JpZW50YXRpb24nXSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4odGFncyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sSW1hZ2VzQXJyYXlbMF0udGFncyA9IHRhZ3M7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhodG1sSW1hZ2VzQXJyYXkpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soaHRtbEltYWdlc0FycmF5KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGh0bWxJbWFnZXNBcnJheSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9yICggaSA9IDA7IGkgPCBodG1sSW1hZ2VzU3JjQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGh0bWxJbWFnZXNBcnJheS5hZGRJbWFnZShpbWcpO1xuICAgICAgICBhZGRPbmxvYWRIYW5kbGVyKGltZywgaHRtbEltYWdlc0FycmF5KTtcbiAgICAgICAgaW1nLnNyYyA9IGh0bWxJbWFnZXNTcmNBcnJheVtpXTtcbiAgICB9XG59O1xuXG5mdW5jdGlvbiBhZGRPbmxvYWRIYW5kbGVyKGltZywgaHRtbEltYWdlc0FycmF5KSB7XG4gICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBodG1sSW1hZ2VzQXJyYXkubG9hZGVkKHRoaXMpO1xuICAgIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IChJbWFnZUxvYWRlcik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvaW5wdXQvaW1hZ2VfbG9hZGVyLmpzIiwiaW1wb3J0IEltYWdlTG9hZGVyIGZyb20gJy4vaW1hZ2VfbG9hZGVyJztcblxudmFyIElucHV0U3RyZWFtID0ge307XG5JbnB1dFN0cmVhbS5jcmVhdGVWaWRlb1N0cmVhbSA9IGZ1bmN0aW9uKHZpZGVvKSB7XG4gICAgdmFyIHRoYXQgPSB7fSxcbiAgICAgICAgX2NvbmZpZyA9IG51bGwsXG4gICAgICAgIF9ldmVudE5hbWVzID0gWydjYW5yZWNvcmQnLCAnZW5kZWQnXSxcbiAgICAgICAgX2V2ZW50SGFuZGxlcnMgPSB7fSxcbiAgICAgICAgX2NhbGN1bGF0ZWRXaWR0aCxcbiAgICAgICAgX2NhbGN1bGF0ZWRIZWlnaHQsXG4gICAgICAgIF90b3BSaWdodCA9IHt4OiAwLCB5OiAwfSxcbiAgICAgICAgX2NhbnZhc1NpemUgPSB7eDogMCwgeTogMH07XG5cbiAgICBmdW5jdGlvbiBpbml0U2l6ZSgpIHtcbiAgICAgICAgdmFyIHdpZHRoID0gdmlkZW8udmlkZW9XaWR0aCxcbiAgICAgICAgICAgIGhlaWdodCA9IHZpZGVvLnZpZGVvSGVpZ2h0O1xuXG4gICAgICAgIF9jYWxjdWxhdGVkV2lkdGggPVxuICAgICAgICAgICAgX2NvbmZpZy5zaXplID8gd2lkdGggLyBoZWlnaHQgPiAxID8gX2NvbmZpZy5zaXplIDogTWF0aC5mbG9vcigod2lkdGggLyBoZWlnaHQpICogX2NvbmZpZy5zaXplKSA6IHdpZHRoO1xuICAgICAgICBfY2FsY3VsYXRlZEhlaWdodCA9XG4gICAgICAgICAgICBfY29uZmlnLnNpemUgPyB3aWR0aCAvIGhlaWdodCA+IDEgPyBNYXRoLmZsb29yKChoZWlnaHQgLyB3aWR0aCkgKiBfY29uZmlnLnNpemUpIDogX2NvbmZpZy5zaXplIDogaGVpZ2h0O1xuXG4gICAgICAgIF9jYW52YXNTaXplLnggPSBfY2FsY3VsYXRlZFdpZHRoO1xuICAgICAgICBfY2FudmFzU2l6ZS55ID0gX2NhbGN1bGF0ZWRIZWlnaHQ7XG4gICAgfVxuXG4gICAgdGhhdC5nZXRSZWFsV2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZpZGVvLnZpZGVvV2lkdGg7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0UmVhbEhlaWdodCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmlkZW8udmlkZW9IZWlnaHQ7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jYWxjdWxhdGVkV2lkdGg7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY2FsY3VsYXRlZEhlaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRXaWR0aCA9IGZ1bmN0aW9uKHdpZHRoKSB7XG4gICAgICAgIF9jYWxjdWxhdGVkV2lkdGggPSB3aWR0aDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRIZWlnaHQgPSBmdW5jdGlvbihoZWlnaHQpIHtcbiAgICAgICAgX2NhbGN1bGF0ZWRIZWlnaHQgPSBoZWlnaHQ7XG4gICAgfTtcblxuICAgIHRoYXQuc2V0SW5wdXRTdHJlYW0gPSBmdW5jdGlvbihjb25maWcpIHtcbiAgICAgICAgX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdmlkZW8uc3JjID0gKHR5cGVvZiBjb25maWcuc3JjICE9PSAndW5kZWZpbmVkJykgPyBjb25maWcuc3JjIDogJyc7XG4gICAgfTtcblxuICAgIHRoYXQuZW5kZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZpZGVvLmVuZGVkO1xuICAgIH07XG5cbiAgICB0aGF0LmdldENvbmZpZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2NvbmZpZztcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH07XG5cbiAgICB0aGF0LnBhdXNlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZpZGVvLnBhdXNlKCk7XG4gICAgfTtcblxuICAgIHRoYXQucGxheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2aWRlby5wbGF5KCk7XG4gICAgfTtcblxuICAgIHRoYXQuc2V0Q3VycmVudFRpbWUgPSBmdW5jdGlvbih0aW1lKSB7XG4gICAgICAgIGlmIChfY29uZmlnLnR5cGUgIT09IFwiTGl2ZVN0cmVhbVwiKSB7XG4gICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHRpbWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhhdC5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGYsIGJvb2wpIHtcbiAgICAgICAgaWYgKF9ldmVudE5hbWVzLmluZGV4T2YoZXZlbnQpICE9PSAtMSkge1xuICAgICAgICAgICAgaWYgKCFfZXZlbnRIYW5kbGVyc1tldmVudF0pIHtcbiAgICAgICAgICAgICAgICBfZXZlbnRIYW5kbGVyc1tldmVudF0gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9ldmVudEhhbmRsZXJzW2V2ZW50XS5wdXNoKGYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgYm9vbCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhhdC5jbGVhckV2ZW50SGFuZGxlcnMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgX2V2ZW50TmFtZXMuZm9yRWFjaChmdW5jdGlvbihldmVudE5hbWUpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVycyA9IF9ldmVudEhhbmRsZXJzW2V2ZW50TmFtZV07XG4gICAgICAgICAgICBpZiAoaGFuZGxlcnMgJiYgaGFuZGxlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICB2aWRlby5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGF0LnRyaWdnZXIgPSBmdW5jdGlvbihldmVudE5hbWUsIGFyZ3MpIHtcbiAgICAgICAgdmFyIGosXG4gICAgICAgICAgICBoYW5kbGVycyA9IF9ldmVudEhhbmRsZXJzW2V2ZW50TmFtZV07XG5cbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NhbnJlY29yZCcpIHtcbiAgICAgICAgICAgIGluaXRTaXplKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhbmRsZXJzICYmIGhhbmRsZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgaGFuZGxlcnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyc1tqXS5hcHBseSh0aGF0LCBhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB0aGF0LnNldFRvcFJpZ2h0ID0gZnVuY3Rpb24odG9wUmlnaHQpIHtcbiAgICAgICAgX3RvcFJpZ2h0LnggPSB0b3BSaWdodC54O1xuICAgICAgICBfdG9wUmlnaHQueSA9IHRvcFJpZ2h0Lnk7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0VG9wUmlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF90b3BSaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRDYW52YXNTaXplID0gZnVuY3Rpb24oc2l6ZSkge1xuICAgICAgICBfY2FudmFzU2l6ZS54ID0gc2l6ZS54O1xuICAgICAgICBfY2FudmFzU2l6ZS55ID0gc2l6ZS55O1xuICAgIH07XG5cbiAgICB0aGF0LmdldENhbnZhc1NpemUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jYW52YXNTaXplO1xuICAgIH07XG5cbiAgICB0aGF0LmdldEZyYW1lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2aWRlbztcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoYXQ7XG59O1xuXG5JbnB1dFN0cmVhbS5jcmVhdGVMaXZlU3RyZWFtID0gZnVuY3Rpb24odmlkZW8pIHtcbiAgICB2aWRlby5zZXRBdHRyaWJ1dGUoXCJhdXRvcGxheVwiLCB0cnVlKTtcbiAgICB2YXIgdGhhdCA9IElucHV0U3RyZWFtLmNyZWF0ZVZpZGVvU3RyZWFtKHZpZGVvKTtcblxuICAgIHRoYXQuZW5kZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhhdDtcbn07XG5cbklucHV0U3RyZWFtLmNyZWF0ZUltYWdlU3RyZWFtID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHRoYXQgPSB7fTtcbiAgICB2YXIgX2NvbmZpZyA9IG51bGw7XG5cbiAgICB2YXIgd2lkdGggPSAwLFxuICAgICAgICBoZWlnaHQgPSAwLFxuICAgICAgICBmcmFtZUlkeCA9IDAsXG4gICAgICAgIHBhdXNlZCA9IHRydWUsXG4gICAgICAgIGxvYWRlZCA9IGZhbHNlLFxuICAgICAgICBpbWdBcnJheSA9IG51bGwsXG4gICAgICAgIHNpemUgPSAwLFxuICAgICAgICBvZmZzZXQgPSAxLFxuICAgICAgICBiYXNlVXJsID0gbnVsbCxcbiAgICAgICAgZW5kZWQgPSBmYWxzZSxcbiAgICAgICAgY2FsY3VsYXRlZFdpZHRoLFxuICAgICAgICBjYWxjdWxhdGVkSGVpZ2h0LFxuICAgICAgICBfZXZlbnROYW1lcyA9IFsnY2FucmVjb3JkJywgJ2VuZGVkJ10sXG4gICAgICAgIF9ldmVudEhhbmRsZXJzID0ge30sXG4gICAgICAgIF90b3BSaWdodCA9IHt4OiAwLCB5OiAwfSxcbiAgICAgICAgX2NhbnZhc1NpemUgPSB7eDogMCwgeTogMH07XG5cbiAgICBmdW5jdGlvbiBsb2FkSW1hZ2VzKCkge1xuICAgICAgICBsb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgSW1hZ2VMb2FkZXIubG9hZChiYXNlVXJsLCBmdW5jdGlvbihpbWdzKSB7XG4gICAgICAgICAgICBpbWdBcnJheSA9IGltZ3M7XG4gICAgICAgICAgICBpZiAoaW1nc1swXS50YWdzICYmIGltZ3NbMF0udGFncy5vcmllbnRhdGlvbikge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoaW1nc1swXS50YWdzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBpbWdzWzBdLmltZy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCA9IGltZ3NbMF0uaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGltZ3NbMF0uaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSBpbWdzWzBdLmltZy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IGltZ3NbMF0uaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IGltZ3NbMF0uaW1nLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGN1bGF0ZWRXaWR0aCA9XG4gICAgICAgICAgICAgICAgX2NvbmZpZy5zaXplID8gd2lkdGggLyBoZWlnaHQgPiAxID8gX2NvbmZpZy5zaXplIDogTWF0aC5mbG9vcigod2lkdGggLyBoZWlnaHQpICogX2NvbmZpZy5zaXplKSA6IHdpZHRoO1xuICAgICAgICAgICAgY2FsY3VsYXRlZEhlaWdodCA9XG4gICAgICAgICAgICAgICAgX2NvbmZpZy5zaXplID8gd2lkdGggLyBoZWlnaHQgPiAxID8gTWF0aC5mbG9vcigoaGVpZ2h0IC8gd2lkdGgpICogX2NvbmZpZy5zaXplKSA6IF9jb25maWcuc2l6ZSA6IGhlaWdodDtcbiAgICAgICAgICAgIF9jYW52YXNTaXplLnggPSBjYWxjdWxhdGVkV2lkdGg7XG4gICAgICAgICAgICBfY2FudmFzU2l6ZS55ID0gY2FsY3VsYXRlZEhlaWdodDtcbiAgICAgICAgICAgIGxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICBmcmFtZUlkeCA9IDA7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hFdmVudChcImNhbnJlY29yZFwiLCBbXSk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfSwgb2Zmc2V0LCBzaXplLCBfY29uZmlnLnNlcXVlbmNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwdWJsaXNoRXZlbnQoZXZlbnROYW1lLCBhcmdzKSB7XG4gICAgICAgIHZhciBqLFxuICAgICAgICAgICAgaGFuZGxlcnMgPSBfZXZlbnRIYW5kbGVyc1tldmVudE5hbWVdO1xuXG4gICAgICAgIGlmIChoYW5kbGVycyAmJiBoYW5kbGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGhhbmRsZXJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlcnNbal0uYXBwbHkodGhhdCwgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHRoYXQudHJpZ2dlciA9IHB1Ymxpc2hFdmVudDtcblxuICAgIHRoYXQuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWRXaWR0aDtcbiAgICB9O1xuXG4gICAgdGhhdC5nZXRIZWlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWRIZWlnaHQ7XG4gICAgfTtcblxuICAgIHRoYXQuc2V0V2lkdGggPSBmdW5jdGlvbihuZXdXaWR0aCkge1xuICAgICAgICBjYWxjdWxhdGVkV2lkdGggPSBuZXdXaWR0aDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRIZWlnaHQgPSBmdW5jdGlvbihuZXdIZWlnaHQpIHtcbiAgICAgICAgY2FsY3VsYXRlZEhlaWdodCA9IG5ld0hlaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5nZXRSZWFsV2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH07XG5cbiAgICB0aGF0LmdldFJlYWxIZWlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRJbnB1dFN0cmVhbSA9IGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgICAgICBfY29uZmlnID0gc3RyZWFtO1xuICAgICAgICBpZiAoc3RyZWFtLnNlcXVlbmNlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgYmFzZVVybCA9IHN0cmVhbS5zcmM7XG4gICAgICAgICAgICBzaXplID0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJhc2VVcmwgPSBzdHJlYW0uc3JjO1xuICAgICAgICAgICAgc2l6ZSA9IHN0cmVhbS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgbG9hZEltYWdlcygpO1xuICAgIH07XG5cbiAgICB0aGF0LmVuZGVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBlbmRlZDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbigpIHt9O1xuXG4gICAgdGhhdC5nZXRDb25maWcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb25maWc7XG4gICAgfTtcblxuICAgIHRoYXQucGF1c2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcGF1c2VkID0gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdGhhdC5wbGF5ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIH07XG5cbiAgICB0aGF0LnNldEN1cnJlbnRUaW1lID0gZnVuY3Rpb24odGltZSkge1xuICAgICAgICBmcmFtZUlkeCA9IHRpbWU7XG4gICAgfTtcblxuICAgIHRoYXQuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKGV2ZW50LCBmKSB7XG4gICAgICAgIGlmIChfZXZlbnROYW1lcy5pbmRleE9mKGV2ZW50KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmICghX2V2ZW50SGFuZGxlcnNbZXZlbnRdKSB7XG4gICAgICAgICAgICAgICAgX2V2ZW50SGFuZGxlcnNbZXZlbnRdID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfZXZlbnRIYW5kbGVyc1tldmVudF0ucHVzaChmKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB0aGF0LnNldFRvcFJpZ2h0ID0gZnVuY3Rpb24odG9wUmlnaHQpIHtcbiAgICAgICAgX3RvcFJpZ2h0LnggPSB0b3BSaWdodC54O1xuICAgICAgICBfdG9wUmlnaHQueSA9IHRvcFJpZ2h0Lnk7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0VG9wUmlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF90b3BSaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRDYW52YXNTaXplID0gZnVuY3Rpb24oY2FudmFzU2l6ZSkge1xuICAgICAgICBfY2FudmFzU2l6ZS54ID0gY2FudmFzU2l6ZS54O1xuICAgICAgICBfY2FudmFzU2l6ZS55ID0gY2FudmFzU2l6ZS55O1xuICAgIH07XG5cbiAgICB0aGF0LmdldENhbnZhc1NpemUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jYW52YXNTaXplO1xuICAgIH07XG5cbiAgICB0aGF0LmdldEZyYW1lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBmcmFtZTtcblxuICAgICAgICBpZiAoIWxvYWRlZCl7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdXNlZCkge1xuICAgICAgICAgICAgZnJhbWUgPSBpbWdBcnJheVtmcmFtZUlkeF07XG4gICAgICAgICAgICBpZiAoZnJhbWVJZHggPCAoc2l6ZSAtIDEpKSB7XG4gICAgICAgICAgICAgICAgZnJhbWVJZHgrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoRXZlbnQoXCJlbmRlZFwiLCBbXSk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhhdDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IElucHV0U3RyZWFtO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2lucHV0X3N0cmVhbS5qcyIsImltcG9ydCBJbWFnZVdyYXBwZXIgZnJvbSAnLi4vY29tbW9uL2ltYWdlX3dyYXBwZXInO1xuaW1wb3J0IHtcbiAgICBjYWxjdWxhdGVQYXRjaFNpemUsXG4gICAgb3RzdVRocmVzaG9sZCxcbiAgICBoc3YycmdiLFxuICAgIGNsdXN0ZXIsXG4gICAgdG9wR2VuZXJpYyxcbiAgICBpbWFnZVJlZixcbiAgICBoYWxmU2FtcGxlLFxuICAgIGNvbXB1dGVJbWFnZUFyZWFcbn0gZnJvbSAnLi4vY29tbW9uL2N2X3V0aWxzJztcbmltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuLi9jb21tb24vYXJyYXlfaGVscGVyJztcbmltcG9ydCBJbWFnZURlYnVnIGZyb20gJy4uL2NvbW1vbi9pbWFnZV9kZWJ1Zyc7XG5pbXBvcnQgUmFzdGVyaXplciBmcm9tICcuL3Jhc3Rlcml6ZXInO1xuaW1wb3J0IFRyYWNlciBmcm9tICcuL3RyYWNlcic7XG5pbXBvcnQgc2tlbGV0b25pemVyIGZyb20gJy4vc2tlbGV0b25pemVyJztcbmNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKSxcbiAgICBkb3Q6ICByZXF1aXJlKCdnbC12ZWMyL2RvdCcpLFxuICAgIHNjYWxlOiByZXF1aXJlKCdnbC12ZWMyL3NjYWxlJyksXG4gICAgdHJhbnNmb3JtTWF0MjogcmVxdWlyZSgnZ2wtdmVjMi90cmFuc2Zvcm1NYXQyJylcbn07XG5jb25zdCBtYXQyID0ge1xuICAgIGNvcHk6IHJlcXVpcmUoJ2dsLW1hdDIvY29weScpLFxuICAgIGNyZWF0ZTogcmVxdWlyZSgnZ2wtbWF0Mi9jcmVhdGUnKSxcbiAgICBpbnZlcnQ6IHJlcXVpcmUoJ2dsLW1hdDIvaW52ZXJ0Jylcbn1cblxudmFyIF9jb25maWcsXG4gICAgX2N1cnJlbnRJbWFnZVdyYXBwZXIsXG4gICAgX3NrZWxJbWFnZVdyYXBwZXIsXG4gICAgX3N1YkltYWdlV3JhcHBlcixcbiAgICBfbGFiZWxJbWFnZVdyYXBwZXIsXG4gICAgX3BhdGNoR3JpZCxcbiAgICBfcGF0Y2hMYWJlbEdyaWQsXG4gICAgX2ltYWdlVG9QYXRjaEdyaWQsXG4gICAgX2JpbmFyeUltYWdlV3JhcHBlcixcbiAgICBfcGF0Y2hTaXplLFxuICAgIF9jYW52YXNDb250YWluZXIgPSB7XG4gICAgICAgIGN0eDoge1xuICAgICAgICAgICAgYmluYXJ5OiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIGRvbToge1xuICAgICAgICAgICAgYmluYXJ5OiBudWxsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIF9udW1QYXRjaGVzID0ge3g6IDAsIHk6IDB9LFxuICAgIF9pbnB1dEltYWdlV3JhcHBlcixcbiAgICBfc2tlbGV0b25pemVyO1xuXG5mdW5jdGlvbiBpbml0QnVmZmVycygpIHtcbiAgICB2YXIgc2tlbGV0b25JbWFnZURhdGE7XG5cbiAgICBpZiAoX2NvbmZpZy5oYWxmU2FtcGxlKSB7XG4gICAgICAgIF9jdXJyZW50SW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcih7XG4gICAgICAgICAgICB4OiBfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS54IC8gMiB8IDAsXG4gICAgICAgICAgICB5OiBfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS55IC8gMiB8IDBcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX2N1cnJlbnRJbWFnZVdyYXBwZXIgPSBfaW5wdXRJbWFnZVdyYXBwZXI7XG4gICAgfVxuXG4gICAgX3BhdGNoU2l6ZSA9IGNhbGN1bGF0ZVBhdGNoU2l6ZShfY29uZmlnLnBhdGNoU2l6ZSwgX2N1cnJlbnRJbWFnZVdyYXBwZXIuc2l6ZSk7XG5cbiAgICBfbnVtUGF0Y2hlcy54ID0gX2N1cnJlbnRJbWFnZVdyYXBwZXIuc2l6ZS54IC8gX3BhdGNoU2l6ZS54IHwgMDtcbiAgICBfbnVtUGF0Y2hlcy55ID0gX2N1cnJlbnRJbWFnZVdyYXBwZXIuc2l6ZS55IC8gX3BhdGNoU2l6ZS55IHwgMDtcblxuICAgIF9iaW5hcnlJbWFnZVdyYXBwZXIgPSBuZXcgSW1hZ2VXcmFwcGVyKF9jdXJyZW50SW1hZ2VXcmFwcGVyLnNpemUsIHVuZGVmaW5lZCwgVWludDhBcnJheSwgZmFsc2UpO1xuXG4gICAgX2xhYmVsSW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcihfcGF0Y2hTaXplLCB1bmRlZmluZWQsIEFycmF5LCB0cnVlKTtcblxuICAgIHNrZWxldG9uSW1hZ2VEYXRhID0gbmV3IEFycmF5QnVmZmVyKDY0ICogMTAyNCk7XG4gICAgX3N1YkltYWdlV3JhcHBlciA9IG5ldyBJbWFnZVdyYXBwZXIoX3BhdGNoU2l6ZSxcbiAgICAgICAgbmV3IFVpbnQ4QXJyYXkoc2tlbGV0b25JbWFnZURhdGEsIDAsIF9wYXRjaFNpemUueCAqIF9wYXRjaFNpemUueSkpO1xuICAgIF9za2VsSW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcihfcGF0Y2hTaXplLFxuICAgICAgICBuZXcgVWludDhBcnJheShza2VsZXRvbkltYWdlRGF0YSwgX3BhdGNoU2l6ZS54ICogX3BhdGNoU2l6ZS55ICogMywgX3BhdGNoU2l6ZS54ICogX3BhdGNoU2l6ZS55KSxcbiAgICAgICAgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICBfc2tlbGV0b25pemVyID0gc2tlbGV0b25pemVyKCh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgPyB3aW5kb3cgOiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSA/IHNlbGYgOiBnbG9iYWwsIHtcbiAgICAgICAgc2l6ZTogX3BhdGNoU2l6ZS54XG4gICAgfSwgc2tlbGV0b25JbWFnZURhdGEpO1xuXG4gICAgX2ltYWdlVG9QYXRjaEdyaWQgPSBuZXcgSW1hZ2VXcmFwcGVyKHtcbiAgICAgICAgeDogKF9jdXJyZW50SW1hZ2VXcmFwcGVyLnNpemUueCAvIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZS54KSB8IDAsXG4gICAgICAgIHk6IChfY3VycmVudEltYWdlV3JhcHBlci5zaXplLnkgLyBfc3ViSW1hZ2VXcmFwcGVyLnNpemUueSkgfCAwXG4gICAgfSwgdW5kZWZpbmVkLCBBcnJheSwgdHJ1ZSk7XG4gICAgX3BhdGNoR3JpZCA9IG5ldyBJbWFnZVdyYXBwZXIoX2ltYWdlVG9QYXRjaEdyaWQuc2l6ZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIF9wYXRjaExhYmVsR3JpZCA9IG5ldyBJbWFnZVdyYXBwZXIoX2ltYWdlVG9QYXRjaEdyaWQuc2l6ZSwgdW5kZWZpbmVkLCBJbnQzMkFycmF5LCB0cnVlKTtcbn1cblxuZnVuY3Rpb24gaW5pdENhbnZhcygpIHtcbiAgICBpZiAoX2NvbmZpZy51c2VXb3JrZXIgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIF9jYW52YXNDb250YWluZXIuZG9tLmJpbmFyeSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LmNsYXNzTmFtZSA9IFwiYmluYXJ5QnVmZmVyXCI7XG4gICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLnNob3dDYW52YXMgPT09IHRydWUpIHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNkZWJ1Z1wiKS5hcHBlbmRDaGlsZChfY2FudmFzQ29udGFpbmVyLmRvbS5iaW5hcnkpO1xuICAgIH1cbiAgICBfY2FudmFzQ29udGFpbmVyLmN0eC5iaW5hcnkgPSBfY2FudmFzQ29udGFpbmVyLmRvbS5iaW5hcnkuZ2V0Q29udGV4dChcIjJkXCIpO1xuICAgIF9jYW52YXNDb250YWluZXIuZG9tLmJpbmFyeS53aWR0aCA9IF9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS54O1xuICAgIF9jYW52YXNDb250YWluZXIuZG9tLmJpbmFyeS5oZWlnaHQgPSBfYmluYXJ5SW1hZ2VXcmFwcGVyLnNpemUueTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgYm91bmRpbmcgYm94IHdoaWNoIGVuY2xvc2VzIGFsbCB0aGUgZ2l2ZW4gcGF0Y2hlc1xuICogQHJldHVybnMge0FycmF5fSBUaGUgbWluaW1hbCBib3VuZGluZyBib3hcbiAqL1xuZnVuY3Rpb24gYm94RnJvbVBhdGNoZXMocGF0Y2hlcykge1xuICAgIHZhciBvdmVyQXZnLFxuICAgICAgICBpLFxuICAgICAgICBqLFxuICAgICAgICBwYXRjaCxcbiAgICAgICAgdHJhbnNNYXQsXG4gICAgICAgIG1pbnggPVxuICAgICAgICBfYmluYXJ5SW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgbWlueSA9IF9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICBtYXh4ID0gLV9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS54LFxuICAgICAgICBtYXh5ID0gLV9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICBib3gsXG4gICAgICAgIHNjYWxlO1xuXG4gICAgLy8gZHJhdyBhbGwgcGF0Y2hlcyB3aGljaCBhcmUgdG8gYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uXG4gICAgb3ZlckF2ZyA9IDA7XG4gICAgZm9yICggaSA9IDA7IGkgPCBwYXRjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHBhdGNoID0gcGF0Y2hlc1tpXTtcbiAgICAgICAgb3ZlckF2ZyArPSBwYXRjaC5yYWQ7XG4gICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5zaG93UGF0Y2hlcykge1xuICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UmVjdChwYXRjaC5wb3MsIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LCB7Y29sb3I6IFwicmVkXCJ9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJBdmcgLz0gcGF0Y2hlcy5sZW5ndGg7XG4gICAgb3ZlckF2ZyA9IChvdmVyQXZnICogMTgwIC8gTWF0aC5QSSArIDkwKSAlIDE4MCAtIDkwO1xuICAgIGlmIChvdmVyQXZnIDwgMCkge1xuICAgICAgICBvdmVyQXZnICs9IDE4MDtcbiAgICB9XG5cbiAgICBvdmVyQXZnID0gKDE4MCAtIG92ZXJBdmcpICogTWF0aC5QSSAvIDE4MDtcbiAgICB0cmFuc01hdCA9IG1hdDIuY29weShtYXQyLmNyZWF0ZSgpLCBbTWF0aC5jb3Mob3ZlckF2ZyksIE1hdGguc2luKG92ZXJBdmcpLCAtTWF0aC5zaW4ob3ZlckF2ZyksIE1hdGguY29zKG92ZXJBdmcpXSk7XG5cbiAgICAvLyBpdGVyYXRlIG92ZXIgcGF0Y2hlcyBhbmQgcm90YXRlIGJ5IGFuZ2xlXG4gICAgZm9yICggaSA9IDA7IGkgPCBwYXRjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHBhdGNoID0gcGF0Y2hlc1tpXTtcbiAgICAgICAgZm9yICggaiA9IDA7IGogPCA0OyBqKyspIHtcbiAgICAgICAgICAgIHZlYzIudHJhbnNmb3JtTWF0MihwYXRjaC5ib3hbal0sIHBhdGNoLmJveFtqXSwgdHJhbnNNYXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLmJveEZyb21QYXRjaGVzLnNob3dUcmFuc2Zvcm1lZCkge1xuICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UGF0aChwYXRjaC5ib3gsIHt4OiAwLCB5OiAxfSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LCB7Y29sb3I6ICcjOTlmZjAwJywgbGluZVdpZHRoOiAyfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBmaW5kIGJvdW5kaW5nIGJveFxuICAgIGZvciAoIGkgPSAwOyBpIDwgcGF0Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXRjaCA9IHBhdGNoZXNbaV07XG4gICAgICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzBdIDwgbWlueCkge1xuICAgICAgICAgICAgICAgIG1pbnggPSBwYXRjaC5ib3hbal1bMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzBdID4gbWF4eCkge1xuICAgICAgICAgICAgICAgIG1heHggPSBwYXRjaC5ib3hbal1bMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzFdIDwgbWlueSkge1xuICAgICAgICAgICAgICAgIG1pbnkgPSBwYXRjaC5ib3hbal1bMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzFdID4gbWF4eSkge1xuICAgICAgICAgICAgICAgIG1heHkgPSBwYXRjaC5ib3hbal1bMV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib3ggPSBbW21pbngsIG1pbnldLCBbbWF4eCwgbWlueV0sIFttYXh4LCBtYXh5XSwgW21pbngsIG1heHldXTtcblxuICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5ib3hGcm9tUGF0Y2hlcy5zaG93VHJhbnNmb3JtZWRCb3gpIHtcbiAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UGF0aChib3gsIHt4OiAwLCB5OiAxfSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LCB7Y29sb3I6ICcjZmYwMDAwJywgbGluZVdpZHRoOiAyfSk7XG4gICAgfVxuXG4gICAgc2NhbGUgPSBfY29uZmlnLmhhbGZTYW1wbGUgPyAyIDogMTtcbiAgICAvLyByZXZlcnNlIHJvdGF0aW9uO1xuICAgIHRyYW5zTWF0ID0gbWF0Mi5pbnZlcnQodHJhbnNNYXQsIHRyYW5zTWF0KTtcbiAgICBmb3IgKCBqID0gMDsgaiA8IDQ7IGorKykge1xuICAgICAgICB2ZWMyLnRyYW5zZm9ybU1hdDIoYm94W2pdLCBib3hbal0sIHRyYW5zTWF0KTtcbiAgICB9XG5cbiAgICBpZiAoRU5WLmRldmVsb3BtZW50ICYmIF9jb25maWcuZGVidWcuYm94RnJvbVBhdGNoZXMuc2hvd0JCKSB7XG4gICAgICAgIEltYWdlRGVidWcuZHJhd1BhdGgoYm94LCB7eDogMCwgeTogMX0sIF9jYW52YXNDb250YWluZXIuY3R4LmJpbmFyeSwge2NvbG9yOiAnI2ZmMDAwMCcsIGxpbmVXaWR0aDogMn0pO1xuICAgIH1cblxuICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgIHZlYzIuc2NhbGUoYm94W2pdLCBib3hbal0sIHNjYWxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm94O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBiaW5hcnkgaW1hZ2Ugb2YgdGhlIGN1cnJlbnQgaW1hZ2VcbiAqL1xuZnVuY3Rpb24gYmluYXJpemVJbWFnZSgpIHtcbiAgICBvdHN1VGhyZXNob2xkKF9jdXJyZW50SW1hZ2VXcmFwcGVyLCBfYmluYXJ5SW1hZ2VXcmFwcGVyKTtcbiAgICBfYmluYXJ5SW1hZ2VXcmFwcGVyLnplcm9Cb3JkZXIoKTtcbiAgICBpZiAoRU5WLmRldmVsb3BtZW50ICYmIF9jb25maWcuZGVidWcuc2hvd0NhbnZhcykge1xuICAgICAgICBfYmluYXJ5SW1hZ2VXcmFwcGVyLnNob3coX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LCAyNTUpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgdGhlIGVudGlyZSBpbWFnZVxuICogZXh0cmFjdCBwYXRjaGVzXG4gKi9cbmZ1bmN0aW9uIGZpbmRQYXRjaGVzKCkge1xuICAgIHZhciBpLFxuICAgICAgICBqLFxuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBtb21lbnRzLFxuICAgICAgICBwYXRjaGVzRm91bmQgPSBbXSxcbiAgICAgICAgcmFzdGVyaXplcixcbiAgICAgICAgcmFzdGVyUmVzdWx0LFxuICAgICAgICBwYXRjaDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgX251bVBhdGNoZXMueDsgaSsrKSB7XG4gICAgICAgIGZvciAoaiA9IDA7IGogPCBfbnVtUGF0Y2hlcy55OyBqKyspIHtcbiAgICAgICAgICAgIHggPSBfc3ViSW1hZ2VXcmFwcGVyLnNpemUueCAqIGk7XG4gICAgICAgICAgICB5ID0gX3N1YkltYWdlV3JhcHBlci5zaXplLnkgKiBqO1xuXG4gICAgICAgICAgICAvLyBzZXBlcmF0ZSBwYXJ0c1xuICAgICAgICAgICAgc2tlbGV0b25pemUoeCwgeSk7XG5cbiAgICAgICAgICAgIC8vIFJhc3Rlcml6ZSwgZmluZCBpbmRpdmlkdWFsIGJhcnNcbiAgICAgICAgICAgIF9za2VsSW1hZ2VXcmFwcGVyLnplcm9Cb3JkZXIoKTtcbiAgICAgICAgICAgIEFycmF5SGVscGVyLmluaXQoX2xhYmVsSW1hZ2VXcmFwcGVyLmRhdGEsIDApO1xuICAgICAgICAgICAgcmFzdGVyaXplciA9IFJhc3Rlcml6ZXIuY3JlYXRlKF9za2VsSW1hZ2VXcmFwcGVyLCBfbGFiZWxJbWFnZVdyYXBwZXIpO1xuICAgICAgICAgICAgcmFzdGVyUmVzdWx0ID0gcmFzdGVyaXplci5yYXN0ZXJpemUoMCk7XG5cbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5zaG93TGFiZWxzKSB7XG4gICAgICAgICAgICAgICAgX2xhYmVsSW1hZ2VXcmFwcGVyLm92ZXJsYXkoX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LCBNYXRoLmZsb29yKDM2MCAvIHJhc3RlclJlc3VsdC5jb3VudCksXG4gICAgICAgICAgICAgICAgICAgIHt4OiB4LCB5OiB5fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBtb21lbnRzIGZyb20gdGhlIHNrZWxldG9uaXplZCBwYXRjaFxuICAgICAgICAgICAgbW9tZW50cyA9IF9sYWJlbEltYWdlV3JhcHBlci5tb21lbnRzKHJhc3RlclJlc3VsdC5jb3VudCk7XG5cbiAgICAgICAgICAgIC8vIGV4dHJhY3QgZWxpZ2libGUgcGF0Y2hlc1xuICAgICAgICAgICAgcGF0Y2hlc0ZvdW5kID0gcGF0Y2hlc0ZvdW5kLmNvbmNhdChkZXNjcmliZVBhdGNoKG1vbWVudHMsIFtpLCBqXSwgeCwgeSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLnNob3dGb3VuZFBhdGNoZXMpIHtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBwYXRjaGVzRm91bmQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhdGNoID0gcGF0Y2hlc0ZvdW5kW2ldO1xuICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UmVjdChwYXRjaC5wb3MsIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LFxuICAgICAgICAgICAgICAgIHtjb2xvcjogXCIjOTlmZjAwXCIsIGxpbmVXaWR0aDogMn0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGNoZXNGb3VuZDtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aG9zZSBjb25uZWN0ZWQgYXJlYXMgd2hpY2ggY29udGFpbiBhdCBsZWFzdCA2IHBhdGNoZXNcbiAqIGFuZCByZXR1cm5zIHRoZW0gb3JkZXJlZCBERVNDIGJ5IHRoZSBudW1iZXIgb2YgY29udGFpbmVkIHBhdGNoZXNcbiAqIEBwYXJhbSB7TnVtYmVyfSBtYXhMYWJlbFxuICovXG5mdW5jdGlvbiBmaW5kQmlnZ2VzdENvbm5lY3RlZEFyZWFzKG1heExhYmVsKXtcbiAgICB2YXIgaSxcbiAgICAgICAgc3VtLFxuICAgICAgICBsYWJlbEhpc3QgPSBbXSxcbiAgICAgICAgdG9wTGFiZWxzID0gW107XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IG1heExhYmVsOyBpKyspIHtcbiAgICAgICAgbGFiZWxIaXN0LnB1c2goMCk7XG4gICAgfVxuICAgIHN1bSA9IF9wYXRjaExhYmVsR3JpZC5kYXRhLmxlbmd0aDtcbiAgICB3aGlsZSAoc3VtLS0pIHtcbiAgICAgICAgaWYgKF9wYXRjaExhYmVsR3JpZC5kYXRhW3N1bV0gPiAwKSB7XG4gICAgICAgICAgICBsYWJlbEhpc3RbX3BhdGNoTGFiZWxHcmlkLmRhdGFbc3VtXSAtIDFdKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbEhpc3QgPSBsYWJlbEhpc3QubWFwKGZ1bmN0aW9uKHZhbCwgaWR4KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWw6IHZhbCxcbiAgICAgICAgICAgIGxhYmVsOiBpZHggKyAxXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBsYWJlbEhpc3Quc29ydChmdW5jdGlvbihhLCBiKSB7XG4gICAgICAgIHJldHVybiBiLnZhbCAtIGEudmFsO1xuICAgIH0pO1xuXG4gICAgLy8gZXh0cmFjdCB0b3AgYXJlYXMgd2l0aCBhdCBsZWFzdCA2IHBhdGNoZXMgcHJlc2VudFxuICAgIHRvcExhYmVscyA9IGxhYmVsSGlzdC5maWx0ZXIoZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgcmV0dXJuIGVsLnZhbCA+PSA1O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRvcExhYmVscztcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBmaW5kQm94ZXModG9wTGFiZWxzLCBtYXhMYWJlbCkge1xuICAgIHZhciBpLFxuICAgICAgICBqLFxuICAgICAgICBzdW0sXG4gICAgICAgIHBhdGNoZXMgPSBbXSxcbiAgICAgICAgcGF0Y2gsXG4gICAgICAgIGJveCxcbiAgICAgICAgYm94ZXMgPSBbXSxcbiAgICAgICAgaHN2ID0gWzAsIDEsIDFdLFxuICAgICAgICByZ2IgPSBbMCwgMCwgMF07XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IHRvcExhYmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgICBzdW0gPSBfcGF0Y2hMYWJlbEdyaWQuZGF0YS5sZW5ndGg7XG4gICAgICAgIHBhdGNoZXMubGVuZ3RoID0gMDtcbiAgICAgICAgd2hpbGUgKHN1bS0tKSB7XG4gICAgICAgICAgICBpZiAoX3BhdGNoTGFiZWxHcmlkLmRhdGFbc3VtXSA9PT0gdG9wTGFiZWxzW2ldLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2ggPSBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW3N1bV07XG4gICAgICAgICAgICAgICAgcGF0Y2hlcy5wdXNoKHBhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBib3ggPSBib3hGcm9tUGF0Y2hlcyhwYXRjaGVzKTtcbiAgICAgICAgaWYgKGJveCkge1xuICAgICAgICAgICAgYm94ZXMucHVzaChib3gpO1xuXG4gICAgICAgICAgICAvLyBkcmF3IHBhdGNoLWxhYmVscyBpZiByZXF1ZXN0ZWRcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5zaG93UmVtYWluaW5nUGF0Y2hMYWJlbHMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IHBhdGNoZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2ggPSBwYXRjaGVzW2pdO1xuICAgICAgICAgICAgICAgICAgICBoc3ZbMF0gPSAodG9wTGFiZWxzW2ldLmxhYmVsIC8gKG1heExhYmVsICsgMSkpICogMzYwO1xuICAgICAgICAgICAgICAgICAgICBoc3YycmdiKGhzdiwgcmdiKTtcbiAgICAgICAgICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UmVjdChwYXRjaC5wb3MsIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAge2NvbG9yOiBcInJnYihcIiArIHJnYi5qb2luKFwiLFwiKSArIFwiKVwiLCBsaW5lV2lkdGg6IDJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJveGVzO1xufVxuXG4vKipcbiAqIEZpbmQgc2ltaWxhciBtb21lbnRzICh2aWEgY2x1c3RlcilcbiAqIEBwYXJhbSB7T2JqZWN0fSBtb21lbnRzXG4gKi9cbmZ1bmN0aW9uIHNpbWlsYXJNb21lbnRzKG1vbWVudHMpIHtcbiAgICB2YXIgY2x1c3RlcnMgPSBjbHVzdGVyKG1vbWVudHMsIDAuOTApO1xuICAgIHZhciB0b3BDbHVzdGVyID0gdG9wR2VuZXJpYyhjbHVzdGVycywgMSwgZnVuY3Rpb24oZSkge1xuICAgICAgICByZXR1cm4gZS5nZXRQb2ludHMoKS5sZW5ndGg7XG4gICAgfSk7XG4gICAgdmFyIHBvaW50cyA9IFtdLCByZXN1bHQgPSBbXTtcbiAgICBpZiAodG9wQ2x1c3Rlci5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcG9pbnRzID0gdG9wQ2x1c3RlclswXS5pdGVtLmdldFBvaW50cygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocG9pbnRzW2ldLnBvaW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBza2VsZXRvbml6ZSh4LCB5KSB7XG4gICAgX2JpbmFyeUltYWdlV3JhcHBlci5zdWJJbWFnZUFzQ29weShfc3ViSW1hZ2VXcmFwcGVyLCBpbWFnZVJlZih4LCB5KSk7XG4gICAgX3NrZWxldG9uaXplci5za2VsZXRvbml6ZSgpO1xuXG4gICAgLy8gU2hvdyBza2VsZXRvbiBpZiByZXF1ZXN0ZWRcbiAgICBpZiAoRU5WLmRldmVsb3BtZW50ICYmIF9jb25maWcuZGVidWcuc2hvd1NrZWxldG9uKSB7XG4gICAgICAgIF9za2VsSW1hZ2VXcmFwcGVyLm92ZXJsYXkoX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LCAzNjAsIGltYWdlUmVmKHgsIHkpKTtcbiAgICB9XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYW5kIGRlc2NyaWJlcyB0aG9zZSBwYXRjaGVzIHdoaWNoIHNlZW0gdG8gY29udGFpbiBhIGJhcmNvZGUgcGF0dGVyblxuICogQHBhcmFtIHtBcnJheX0gbW9tZW50c1xuICogQHBhcmFtIHtPYmplY3R9IHBhdGNoUG9zLFxuICogQHBhcmFtIHtOdW1iZXJ9IHhcbiAqIEBwYXJhbSB7TnVtYmVyfSB5XG4gKiBAcmV0dXJucyB7QXJyYXl9IGxpc3Qgb2YgcGF0Y2hlc1xuICovXG5mdW5jdGlvbiBkZXNjcmliZVBhdGNoKG1vbWVudHMsIHBhdGNoUG9zLCB4LCB5KSB7XG4gICAgdmFyIGssXG4gICAgICAgIGF2ZyxcbiAgICAgICAgZWxpZ2libGVNb21lbnRzID0gW10sXG4gICAgICAgIG1hdGNoaW5nTW9tZW50cyxcbiAgICAgICAgcGF0Y2gsXG4gICAgICAgIHBhdGNoZXNGb3VuZCA9IFtdLFxuICAgICAgICBtaW5Db21wb25lbnRXZWlnaHQgPSBNYXRoLmNlaWwoX3BhdGNoU2l6ZS54IC8gMyk7XG5cbiAgICBpZiAobW9tZW50cy5sZW5ndGggPj0gMikge1xuICAgICAgICAvLyBvbmx5IGNvbGxlY3QgbW9tZW50cyB3aGljaCdzIGFyZWEgY292ZXJzIGF0IGxlYXN0IG1pbkNvbXBvbmVudFdlaWdodCBwaXhlbHMuXG4gICAgICAgIGZvciAoIGsgPSAwOyBrIDwgbW9tZW50cy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgaWYgKG1vbWVudHNba10ubTAwID4gbWluQ29tcG9uZW50V2VpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZWxpZ2libGVNb21lbnRzLnB1c2gobW9tZW50c1trXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBhdCBsZWFzdCAyIG1vbWVudHMgYXJlIGZvdW5kIHdoaWNoIGhhdmUgYXQgbGVhc3QgbWluQ29tcG9uZW50V2VpZ2h0cyBjb3ZlcmVkXG4gICAgICAgIGlmIChlbGlnaWJsZU1vbWVudHMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgIG1hdGNoaW5nTW9tZW50cyA9IHNpbWlsYXJNb21lbnRzKGVsaWdpYmxlTW9tZW50cyk7XG4gICAgICAgICAgICBhdmcgPSAwO1xuICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBzaW1pbGFyaXR5IG9mIHRoZSBtb21lbnRzXG4gICAgICAgICAgICBmb3IgKCBrID0gMDsgayA8IG1hdGNoaW5nTW9tZW50cy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgIGF2ZyArPSBtYXRjaGluZ01vbWVudHNba10ucmFkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBPbmx5IHR3byBvZiB0aGUgbW9tZW50cyBhcmUgYWxsb3dlZCBub3QgdG8gZml0IGludG8gdGhlIGVxdWF0aW9uXG4gICAgICAgICAgICAvLyBhZGQgdGhlIHBhdGNoIHRvIHRoZSBzZXRcbiAgICAgICAgICAgIGlmIChtYXRjaGluZ01vbWVudHMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICAmJiBtYXRjaGluZ01vbWVudHMubGVuZ3RoID49IChlbGlnaWJsZU1vbWVudHMubGVuZ3RoIC8gNCkgKiAzXG4gICAgICAgICAgICAgICAgICAgICYmIG1hdGNoaW5nTW9tZW50cy5sZW5ndGggPiBtb21lbnRzLmxlbmd0aCAvIDQpIHtcbiAgICAgICAgICAgICAgICBhdmcgLz0gbWF0Y2hpbmdNb21lbnRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBwYXRjaCA9IHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHBhdGNoUG9zWzFdICogX251bVBhdGNoZXMueCArIHBhdGNoUG9zWzBdLFxuICAgICAgICAgICAgICAgICAgICBwb3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiB5XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJveDogW1xuICAgICAgICAgICAgICAgICAgICAgICAgdmVjMi5jbG9uZShbeCwgeV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVjMi5jbG9uZShbeCArIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZS54LCB5XSksXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZWMyLmNsb25lKFt4ICsgX3N1YkltYWdlV3JhcHBlci5zaXplLngsIHkgKyBfc3ViSW1hZ2VXcmFwcGVyLnNpemUueV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVjMi5jbG9uZShbeCwgeSArIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZS55XSlcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgbW9tZW50czogbWF0Y2hpbmdNb21lbnRzLFxuICAgICAgICAgICAgICAgICAgICByYWQ6IGF2ZyxcbiAgICAgICAgICAgICAgICAgICAgdmVjOiB2ZWMyLmNsb25lKFtNYXRoLmNvcyhhdmcpLCBNYXRoLnNpbihhdmcpXSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBhdGNoZXNGb3VuZC5wdXNoKHBhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF0Y2hlc0ZvdW5kO1xufVxuXG4vKipcbiAqIGZpbmRzIHBhdGNoZXMgd2hpY2ggYXJlIGNvbm5lY3RlZCBhbmQgc2hhcmUgdGhlIHNhbWUgb3JpZW50YXRpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXRjaGVzRm91bmRcbiAqL1xuZnVuY3Rpb24gcmFzdGVyaXplQW5ndWxhclNpbWlsYXJpdHkocGF0Y2hlc0ZvdW5kKSB7XG4gICAgdmFyIGxhYmVsID0gMCxcbiAgICAgICAgdGhyZXNob2xkID0gMC45NSxcbiAgICAgICAgY3VycklkeCA9IDAsXG4gICAgICAgIGosXG4gICAgICAgIHBhdGNoLFxuICAgICAgICBoc3YgPSBbMCwgMSwgMV0sXG4gICAgICAgIHJnYiA9IFswLCAwLCAwXTtcblxuICAgIGZ1bmN0aW9uIG5vdFlldFByb2Nlc3NlZCgpIHtcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgX3BhdGNoTGFiZWxHcmlkLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChfcGF0Y2hMYWJlbEdyaWQuZGF0YVtpXSA9PT0gMCAmJiBfcGF0Y2hHcmlkLmRhdGFbaV0gPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3BhdGNoTGFiZWxHcmlkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFjZShjdXJyZW50SWR4KSB7XG4gICAgICAgIHZhciB4LFxuICAgICAgICAgICAgeSxcbiAgICAgICAgICAgIGN1cnJlbnRQYXRjaCxcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgIGN1cnJlbnQgPSB7XG4gICAgICAgICAgICAgICAgeDogY3VycmVudElkeCAlIF9wYXRjaExhYmVsR3JpZC5zaXplLngsXG4gICAgICAgICAgICAgICAgeTogKGN1cnJlbnRJZHggLyBfcGF0Y2hMYWJlbEdyaWQuc2l6ZS54KSB8IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaW1pbGFyaXR5O1xuXG4gICAgICAgIGlmIChjdXJyZW50SWR4IDwgX3BhdGNoTGFiZWxHcmlkLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBjdXJyZW50UGF0Y2ggPSBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW2N1cnJlbnRJZHhdO1xuICAgICAgICAgICAgLy8gYXNzaWduIGxhYmVsXG4gICAgICAgICAgICBfcGF0Y2hMYWJlbEdyaWQuZGF0YVtjdXJyZW50SWR4XSA9IGxhYmVsO1xuICAgICAgICAgICAgZm9yICggZGlyID0gMDsgZGlyIDwgVHJhY2VyLnNlYXJjaERpcmVjdGlvbnMubGVuZ3RoOyBkaXIrKykge1xuICAgICAgICAgICAgICAgIHkgPSBjdXJyZW50LnkgKyBUcmFjZXIuc2VhcmNoRGlyZWN0aW9uc1tkaXJdWzBdO1xuICAgICAgICAgICAgICAgIHggPSBjdXJyZW50LnggKyBUcmFjZXIuc2VhcmNoRGlyZWN0aW9uc1tkaXJdWzFdO1xuICAgICAgICAgICAgICAgIGlkeCA9IHkgKiBfcGF0Y2hMYWJlbEdyaWQuc2l6ZS54ICsgeDtcblxuICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGlmIHBhdGNoIGVtcHR5XG4gICAgICAgICAgICAgICAgaWYgKF9wYXRjaEdyaWQuZGF0YVtpZHhdID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIF9wYXRjaExhYmVsR3JpZC5kYXRhW2lkeF0gPSBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoX3BhdGNoTGFiZWxHcmlkLmRhdGFbaWR4XSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzaW1pbGFyaXR5ID0gTWF0aC5hYnModmVjMi5kb3QoX2ltYWdlVG9QYXRjaEdyaWQuZGF0YVtpZHhdLnZlYywgY3VycmVudFBhdGNoLnZlYykpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2ltaWxhcml0eSA+IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2UoaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHByZXBhcmUgZm9yIGZpbmRpbmcgdGhlIHJpZ2h0IHBhdGNoZXNcbiAgICBBcnJheUhlbHBlci5pbml0KF9wYXRjaEdyaWQuZGF0YSwgMCk7XG4gICAgQXJyYXlIZWxwZXIuaW5pdChfcGF0Y2hMYWJlbEdyaWQuZGF0YSwgMCk7XG4gICAgQXJyYXlIZWxwZXIuaW5pdChfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhLCBudWxsKTtcblxuICAgIGZvciAoIGogPSAwOyBqIDwgcGF0Y2hlc0ZvdW5kLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHBhdGNoID0gcGF0Y2hlc0ZvdW5kW2pdO1xuICAgICAgICBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW3BhdGNoLmluZGV4XSA9IHBhdGNoO1xuICAgICAgICBfcGF0Y2hHcmlkLmRhdGFbcGF0Y2guaW5kZXhdID0gMTtcbiAgICB9XG5cbiAgICAvLyByYXN0ZXJpemUgdGhlIHBhdGNoZXMgZm91bmQgdG8gZGV0ZXJtaW5lIGFyZWFcbiAgICBfcGF0Y2hHcmlkLnplcm9Cb3JkZXIoKTtcblxuICAgIHdoaWxlICgoIGN1cnJJZHggPSBub3RZZXRQcm9jZXNzZWQoKSkgPCBfcGF0Y2hMYWJlbEdyaWQuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgbGFiZWwrKztcbiAgICAgICAgdHJhY2UoY3VycklkeCk7XG4gICAgfVxuXG4gICAgLy8gZHJhdyBwYXRjaC1sYWJlbHMgaWYgcmVxdWVzdGVkXG4gICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLnNob3dQYXRjaExhYmVscykge1xuICAgICAgICBmb3IgKCBqID0gMDsgaiA8IF9wYXRjaExhYmVsR3JpZC5kYXRhLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoX3BhdGNoTGFiZWxHcmlkLmRhdGFbal0gPiAwICYmIF9wYXRjaExhYmVsR3JpZC5kYXRhW2pdIDw9IGxhYmVsKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2ggPSBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW2pdO1xuICAgICAgICAgICAgICAgIGhzdlswXSA9IChfcGF0Y2hMYWJlbEdyaWQuZGF0YVtqXSAvIChsYWJlbCArIDEpKSAqIDM2MDtcbiAgICAgICAgICAgICAgICBoc3YycmdiKGhzdiwgcmdiKTtcbiAgICAgICAgICAgICAgICBJbWFnZURlYnVnLmRyYXdSZWN0KHBhdGNoLnBvcywgX3N1YkltYWdlV3JhcHBlci5zaXplLCBfY2FudmFzQ29udGFpbmVyLmN0eC5iaW5hcnksXG4gICAgICAgICAgICAgICAgICAgIHtjb2xvcjogXCJyZ2IoXCIgKyByZ2Iuam9pbihcIixcIikgKyBcIilcIiwgbGluZVdpZHRoOiAyfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBpbml0OiBmdW5jdGlvbihpbnB1dEltYWdlV3JhcHBlciwgY29uZmlnKSB7XG4gICAgICAgIF9jb25maWcgPSBjb25maWc7XG4gICAgICAgIF9pbnB1dEltYWdlV3JhcHBlciA9IGlucHV0SW1hZ2VXcmFwcGVyO1xuXG4gICAgICAgIGluaXRCdWZmZXJzKCk7XG4gICAgICAgIGluaXRDYW52YXMoKTtcbiAgICB9LFxuXG4gICAgbG9jYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhdGNoZXNGb3VuZCxcbiAgICAgICAgICAgIHRvcExhYmVscyxcbiAgICAgICAgICAgIGJveGVzO1xuXG4gICAgICAgIGlmIChfY29uZmlnLmhhbGZTYW1wbGUpIHtcbiAgICAgICAgICAgIGhhbGZTYW1wbGUoX2lucHV0SW1hZ2VXcmFwcGVyLCBfY3VycmVudEltYWdlV3JhcHBlcik7XG4gICAgICAgIH1cblxuICAgICAgICBiaW5hcml6ZUltYWdlKCk7XG4gICAgICAgIHBhdGNoZXNGb3VuZCA9IGZpbmRQYXRjaGVzKCk7XG4gICAgICAgIC8vIHJldHVybiB1bmxlc3MgNSUgb3IgbW9yZSBwYXRjaGVzIGFyZSBmb3VuZFxuICAgICAgICBpZiAocGF0Y2hlc0ZvdW5kLmxlbmd0aCA8IF9udW1QYXRjaGVzLnggKiBfbnVtUGF0Y2hlcy55ICogMC4wNSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByYXN0ZXJyaXplIGFyZWEgYnkgY29tcGFyaW5nIGFuZ3VsYXIgc2ltaWxhcml0eTtcbiAgICAgICAgdmFyIG1heExhYmVsID0gcmFzdGVyaXplQW5ndWxhclNpbWlsYXJpdHkocGF0Y2hlc0ZvdW5kKTtcbiAgICAgICAgaWYgKG1heExhYmVsIDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZWFyY2ggZm9yIGFyZWEgd2l0aCB0aGUgbW9zdCBwYXRjaGVzIChiaWdnZXN0IGNvbm5lY3RlZCBhcmVhKVxuICAgICAgICB0b3BMYWJlbHMgPSBmaW5kQmlnZ2VzdENvbm5lY3RlZEFyZWFzKG1heExhYmVsKTtcbiAgICAgICAgaWYgKHRvcExhYmVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgYm94ZXMgPSBmaW5kQm94ZXModG9wTGFiZWxzLCBtYXhMYWJlbCk7XG4gICAgICAgIHJldHVybiBib3hlcztcbiAgICB9LFxuXG4gICAgY2hlY2tJbWFnZUNvbnN0cmFpbnRzOiBmdW5jdGlvbihpbnB1dFN0cmVhbSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwYXRjaFNpemUsXG4gICAgICAgICAgICB3aWR0aCA9IGlucHV0U3RyZWFtLmdldFdpZHRoKCksXG4gICAgICAgICAgICBoZWlnaHQgPSBpbnB1dFN0cmVhbS5nZXRIZWlnaHQoKSxcbiAgICAgICAgICAgIGhhbGZTYW1wbGUgPSBjb25maWcuaGFsZlNhbXBsZSA/IDAuNSA6IDEsXG4gICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgYXJlYTtcblxuICAgICAgICAvLyBjYWxjdWxhdGUgd2lkdGggYW5kIGhlaWdodCBiYXNlZCBvbiBhcmVhXG4gICAgICAgIGlmIChpbnB1dFN0cmVhbS5nZXRDb25maWcoKS5hcmVhKSB7XG4gICAgICAgICAgICBhcmVhID0gY29tcHV0ZUltYWdlQXJlYSh3aWR0aCwgaGVpZ2h0LCBpbnB1dFN0cmVhbS5nZXRDb25maWcoKS5hcmVhKTtcbiAgICAgICAgICAgIGlucHV0U3RyZWFtLnNldFRvcFJpZ2h0KHt4OiBhcmVhLnN4LCB5OiBhcmVhLnN5fSk7XG4gICAgICAgICAgICBpbnB1dFN0cmVhbS5zZXRDYW52YXNTaXplKHt4OiB3aWR0aCwgeTogaGVpZ2h0fSk7XG4gICAgICAgICAgICB3aWR0aCA9IGFyZWEuc3c7XG4gICAgICAgICAgICBoZWlnaHQgPSBhcmVhLnNoO1xuICAgICAgICB9XG5cbiAgICAgICAgc2l6ZSA9IHtcbiAgICAgICAgICAgIHg6IE1hdGguZmxvb3Iod2lkdGggKiBoYWxmU2FtcGxlKSxcbiAgICAgICAgICAgIHk6IE1hdGguZmxvb3IoaGVpZ2h0ICogaGFsZlNhbXBsZSlcbiAgICAgICAgfTtcblxuICAgICAgICBwYXRjaFNpemUgPSBjYWxjdWxhdGVQYXRjaFNpemUoY29uZmlnLnBhdGNoU2l6ZSwgc2l6ZSk7XG4gICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUGF0Y2gtU2l6ZTogXCIgKyBKU09OLnN0cmluZ2lmeShwYXRjaFNpemUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0U3RyZWFtLnNldFdpZHRoKE1hdGguZmxvb3IoTWF0aC5mbG9vcihzaXplLnggLyBwYXRjaFNpemUueCkgKiAoMSAvIGhhbGZTYW1wbGUpICogcGF0Y2hTaXplLngpKTtcbiAgICAgICAgaW5wdXRTdHJlYW0uc2V0SGVpZ2h0KE1hdGguZmxvb3IoTWF0aC5mbG9vcihzaXplLnkgLyBwYXRjaFNpemUueSkgKiAoMSAvIGhhbGZTYW1wbGUpICogcGF0Y2hTaXplLnkpKTtcblxuICAgICAgICBpZiAoKGlucHV0U3RyZWFtLmdldFdpZHRoKCkgJSBwYXRjaFNpemUueCkgPT09IDAgJiYgKGlucHV0U3RyZWFtLmdldEhlaWdodCgpICUgcGF0Y2hTaXplLnkpID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkltYWdlIGRpbWVuc2lvbnMgZG8gbm90IGNvbXBseSB3aXRoIHRoZSBjdXJyZW50IHNldHRpbmdzOiBXaWR0aCAoXCIgK1xuICAgICAgICAgICAgd2lkdGggKyBcIiApYW5kIGhlaWdodCAoXCIgKyBoZWlnaHQgK1xuICAgICAgICAgICAgXCIpIG11c3QgYSBtdWx0aXBsZSBvZiBcIiArIHBhdGNoU2l6ZS54KTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2F0b3IvYmFyY29kZV9sb2NhdG9yLmpzIiwiaW1wb3J0IFRyYWNlciBmcm9tICcuL3RyYWNlcic7XG5cbi8qKlxuICogaHR0cDovL3d3dy5jb2RlcHJvamVjdC5jb20vVGlwcy80MDcxNzIvQ29ubmVjdGVkLUNvbXBvbmVudC1MYWJlbGluZy1hbmQtVmVjdG9yaXphdGlvblxuICovXG52YXIgUmFzdGVyaXplciA9IHtcbiAgICBjcmVhdGVDb250b3VyMkQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGlyOiBudWxsLFxuICAgICAgICAgICAgaW5kZXg6IG51bGwsXG4gICAgICAgICAgICBmaXJzdFZlcnRleDogbnVsbCxcbiAgICAgICAgICAgIGluc2lkZUNvbnRvdXJzOiBudWxsLFxuICAgICAgICAgICAgbmV4dHBlZXI6IG51bGwsXG4gICAgICAgICAgICBwcmV2cGVlcjogbnVsbFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgQ09OVE9VUl9ESVI6IHtcbiAgICAgICAgQ1dfRElSOiAwLFxuICAgICAgICBDQ1dfRElSOiAxLFxuICAgICAgICBVTktOT1dOX0RJUjogMlxuICAgIH0sXG4gICAgRElSOiB7XG4gICAgICAgIE9VVFNJREVfRURHRTogLTMyNzY3LFxuICAgICAgICBJTlNJREVfRURHRTogLTMyNzY2XG4gICAgfSxcbiAgICBjcmVhdGU6IGZ1bmN0aW9uKGltYWdlV3JhcHBlciwgbGFiZWxXcmFwcGVyKSB7XG4gICAgICAgIHZhciBpbWFnZURhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgICAgIGxhYmVsRGF0YSA9IGxhYmVsV3JhcHBlci5kYXRhLFxuICAgICAgICAgICAgd2lkdGggPSBpbWFnZVdyYXBwZXIuc2l6ZS54LFxuICAgICAgICAgICAgaGVpZ2h0ID0gaW1hZ2VXcmFwcGVyLnNpemUueSxcbiAgICAgICAgICAgIHRyYWNlciA9IFRyYWNlci5jcmVhdGUoaW1hZ2VXcmFwcGVyLCBsYWJlbFdyYXBwZXIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByYXN0ZXJpemU6IGZ1bmN0aW9uKGRlcHRobGFiZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29sb3IsXG4gICAgICAgICAgICAgICAgICAgIGJjLFxuICAgICAgICAgICAgICAgICAgICBsYyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgY3gsXG4gICAgICAgICAgICAgICAgICAgIGN5LFxuICAgICAgICAgICAgICAgICAgICBjb2xvck1hcCA9IFtdLFxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXgsXG4gICAgICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgICAgIGNjLFxuICAgICAgICAgICAgICAgICAgICBzYyxcbiAgICAgICAgICAgICAgICAgICAgcG9zLFxuICAgICAgICAgICAgICAgICAgICBjb25uZWN0ZWRDb3VudCA9IDAsXG4gICAgICAgICAgICAgICAgICAgIGk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IDQwMDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yTWFwW2ldID0gMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb2xvck1hcFswXSA9IGltYWdlRGF0YVswXTtcbiAgICAgICAgICAgICAgICBjYyA9IG51bGw7XG4gICAgICAgICAgICAgICAgZm9yICggY3kgPSAxOyBjeSA8IGhlaWdodCAtIDE7IGN5KyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxpbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGJjID0gY29sb3JNYXBbMF07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoIGN4ID0gMTsgY3ggPCB3aWR0aCAtIDE7IGN4KyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGN5ICogd2lkdGggKyBjeDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYWJlbERhdGFbcG9zXSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gaW1hZ2VEYXRhW3Bvc107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9yICE9PSBiYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWxpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGMgPSBjb25uZWN0ZWRDb3VudCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvck1hcFtsY10gPSBjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJjID0gY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXggPSB0cmFjZXIuY29udG91clRyYWNpbmcoY3ksIGN4LCBsYywgY29sb3IsIFJhc3Rlcml6ZXIuRElSLk9VVFNJREVfRURHRSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVydGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGVkQ291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbGluZGV4ID0gbGM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IFJhc3Rlcml6ZXIuY3JlYXRlQ29udG91cjJEKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5kaXIgPSBSYXN0ZXJpemVyLkNPTlRPVVJfRElSLkNXX0RJUjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmluZGV4ID0gbGFiZWxpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmZpcnN0VmVydGV4ID0gdmVydGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAubmV4dHBlZXIgPSBjYztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmluc2lkZUNvbnRvdXJzID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2MgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MucHJldnBlZXIgPSBwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYyA9IHA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXggPSB0cmFjZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29udG91clRyYWNpbmcoY3ksIGN4LCBSYXN0ZXJpemVyLkRJUi5JTlNJREVfRURHRSwgY29sb3IsIGxhYmVsaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBSYXN0ZXJpemVyLmNyZWF0ZUNvbnRvdXIyRCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAuZmlyc3RWZXJ0ZXggPSB2ZXJ0ZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5pbnNpZGVDb250b3VycyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcHRobGFiZWwgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5kaXIgPSBSYXN0ZXJpemVyLkNPTlRPVVJfRElSLkNDV19ESVI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5kaXIgPSBSYXN0ZXJpemVyLkNPTlRPVVJfRElSLkNXX0RJUjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5pbmRleCA9IGRlcHRobGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2MgPSBjYztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHNjICE9PSBudWxsKSAmJiBzYy5pbmRleCAhPT0gbGFiZWxpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYyA9IHNjLm5leHRwZWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2MgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5uZXh0cGVlciA9IHNjLmluc2lkZUNvbnRvdXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2MuaW5zaWRlQ29udG91cnMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjLmluc2lkZUNvbnRvdXJzLnByZXZwZWVyID0gcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYy5pbnNpZGVDb250b3VycyA9IHA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxEYXRhW3Bvc10gPSBsYWJlbGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGFiZWxEYXRhW3Bvc10gPT09IFJhc3Rlcml6ZXIuRElSLk9VVFNJREVfRURHRVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBsYWJlbERhdGFbcG9zXSA9PT0gUmFzdGVyaXplci5ESVIuSU5TSURFX0VER0UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWxEYXRhW3Bvc10gPT09IFJhc3Rlcml6ZXIuRElSLklOU0lERV9FREdFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJjID0gaW1hZ2VEYXRhW3Bvc107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmMgPSBjb2xvck1hcFswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsaW5kZXggPSBsYWJlbERhdGFbcG9zXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYyA9IGNvbG9yTWFwW2xhYmVsaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNjID0gY2M7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHNjICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjLmluZGV4ID0gZGVwdGhsYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgc2MgPSBzYy5uZXh0cGVlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgY2M6IGNjLFxuICAgICAgICAgICAgICAgICAgICBjb3VudDogY29ubmVjdGVkQ291bnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlYnVnOiB7XG4gICAgICAgICAgICAgICAgZHJhd0NvbnRvdXI6IGZ1bmN0aW9uKGNhbnZhcywgZmlyc3RDb250b3VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHEgPSBmaXJzdENvbnRvdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpcSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHEsXG4gICAgICAgICAgICAgICAgICAgICAgICBwO1xuXG4gICAgICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IFwicmVkXCI7XG4gICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBcInJlZFwiO1xuICAgICAgICAgICAgICAgICAgICBjdHgubGluZVdpZHRoID0gMTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocHEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlxID0gcHEuaW5zaWRlQ29udG91cnM7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpcSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAocHEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpcSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBpcTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcSA9IGlxLm5leHRwZWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxID0gcHE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHEgPSBwcS5uZXh0cGVlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXEgPSBwcS5pbnNpZGVDb250b3VycztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHEuZGlyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJhc3Rlcml6ZXIuQ09OVE9VUl9ESVIuQ1dfRElSOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IFwicmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJhc3Rlcml6ZXIuQ09OVE9VUl9ESVIuQ0NXX0RJUjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBcImJsdWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUmFzdGVyaXplci5DT05UT1VSX0RJUi5VTktOT1dOX0RJUjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBcImdyZWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBxLmZpcnN0VmVydGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyhwLngsIHAueSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IHAubmV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKHAueCwgcC55KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKHAgIT09IHEuZmlyc3RWZXJ0ZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJhc3Rlcml6ZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYXRvci9yYXN0ZXJpemVyLmpzIiwiLyogQHByZXNlcnZlIEFTTSBCRUdJTiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxKi9cbmZ1bmN0aW9uIFNrZWxldG9uaXplcihzdGRsaWIsIGZvcmVpZ24sIGJ1ZmZlcikge1xuICAgIFwidXNlIGFzbVwiO1xuXG4gICAgdmFyIGltYWdlcyA9IG5ldyBzdGRsaWIuVWludDhBcnJheShidWZmZXIpLFxuICAgICAgICBzaXplID0gZm9yZWlnbi5zaXplIHwgMCxcbiAgICAgICAgaW11bCA9IHN0ZGxpYi5NYXRoLmltdWw7XG5cbiAgICBmdW5jdGlvbiBlcm9kZShpbkltYWdlUHRyLCBvdXRJbWFnZVB0cikge1xuICAgICAgICBpbkltYWdlUHRyID0gaW5JbWFnZVB0ciB8IDA7XG4gICAgICAgIG91dEltYWdlUHRyID0gb3V0SW1hZ2VQdHIgfCAwO1xuXG4gICAgICAgIHZhciB2ID0gMCxcbiAgICAgICAgICAgIHUgPSAwLFxuICAgICAgICAgICAgc3VtID0gMCxcbiAgICAgICAgICAgIHlTdGFydDEgPSAwLFxuICAgICAgICAgICAgeVN0YXJ0MiA9IDAsXG4gICAgICAgICAgICB4U3RhcnQxID0gMCxcbiAgICAgICAgICAgIHhTdGFydDIgPSAwLFxuICAgICAgICAgICAgb2Zmc2V0ID0gMDtcblxuICAgICAgICBmb3IgKCB2ID0gMTsgKHYgfCAwKSA8ICgoc2l6ZSAtIDEpIHwgMCk7IHYgPSAodiArIDEpIHwgMCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gKG9mZnNldCArIHNpemUpIHwgMDtcbiAgICAgICAgICAgIGZvciAoIHUgPSAxOyAodSB8IDApIDwgKChzaXplIC0gMSkgfCAwKTsgdSA9ICh1ICsgMSkgfCAwKSB7XG4gICAgICAgICAgICAgICAgeVN0YXJ0MSA9IChvZmZzZXQgLSBzaXplKSB8IDA7XG4gICAgICAgICAgICAgICAgeVN0YXJ0MiA9IChvZmZzZXQgKyBzaXplKSB8IDA7XG4gICAgICAgICAgICAgICAgeFN0YXJ0MSA9ICh1IC0gMSkgfCAwO1xuICAgICAgICAgICAgICAgIHhTdGFydDIgPSAodSArIDEpIHwgMDtcbiAgICAgICAgICAgICAgICBzdW0gPSAoKGltYWdlc1soaW5JbWFnZVB0ciArIHlTdGFydDEgKyB4U3RhcnQxKSB8IDBdIHwgMClcbiAgICAgICAgICAgICAgICAgICAgKyAoaW1hZ2VzWyhpbkltYWdlUHRyICsgeVN0YXJ0MSArIHhTdGFydDIpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyBvZmZzZXQgKyB1KSB8IDBdIHwgMClcbiAgICAgICAgICAgICAgICAgICAgKyAoaW1hZ2VzWyhpbkltYWdlUHRyICsgeVN0YXJ0MiArIHhTdGFydDEpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyB5U3RhcnQyICsgeFN0YXJ0MikgfCAwXSB8IDApKSB8IDA7XG4gICAgICAgICAgICAgICAgaWYgKChzdW0gfCAwKSA9PSAoNSB8IDApKSB7XG4gICAgICAgICAgICAgICAgICAgIGltYWdlc1sob3V0SW1hZ2VQdHIgKyBvZmZzZXQgKyB1KSB8IDBdID0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZXNbKG91dEltYWdlUHRyICsgb2Zmc2V0ICsgdSkgfCAwXSA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdWJ0cmFjdChhSW1hZ2VQdHIsIGJJbWFnZVB0ciwgb3V0SW1hZ2VQdHIpIHtcbiAgICAgICAgYUltYWdlUHRyID0gYUltYWdlUHRyIHwgMDtcbiAgICAgICAgYkltYWdlUHRyID0gYkltYWdlUHRyIHwgMDtcbiAgICAgICAgb3V0SW1hZ2VQdHIgPSBvdXRJbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IDA7XG5cbiAgICAgICAgbGVuZ3RoID0gaW11bChzaXplLCBzaXplKSB8IDA7XG5cbiAgICAgICAgd2hpbGUgKChsZW5ndGggfCAwKSA+IDApIHtcbiAgICAgICAgICAgIGxlbmd0aCA9IChsZW5ndGggLSAxKSB8IDA7XG4gICAgICAgICAgICBpbWFnZXNbKG91dEltYWdlUHRyICsgbGVuZ3RoKSB8IDBdID1cbiAgICAgICAgICAgICAgICAoKGltYWdlc1soYUltYWdlUHRyICsgbGVuZ3RoKSB8IDBdIHwgMCkgLSAoaW1hZ2VzWyhiSW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gfCAwKSkgfCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYml0d2lzZU9yKGFJbWFnZVB0ciwgYkltYWdlUHRyLCBvdXRJbWFnZVB0cikge1xuICAgICAgICBhSW1hZ2VQdHIgPSBhSW1hZ2VQdHIgfCAwO1xuICAgICAgICBiSW1hZ2VQdHIgPSBiSW1hZ2VQdHIgfCAwO1xuICAgICAgICBvdXRJbWFnZVB0ciA9IG91dEltYWdlUHRyIHwgMDtcblxuICAgICAgICB2YXIgbGVuZ3RoID0gMDtcblxuICAgICAgICBsZW5ndGggPSBpbXVsKHNpemUsIHNpemUpIHwgMDtcblxuICAgICAgICB3aGlsZSAoKGxlbmd0aCB8IDApID4gMCkge1xuICAgICAgICAgICAgbGVuZ3RoID0gKGxlbmd0aCAtIDEpIHwgMDtcbiAgICAgICAgICAgIGltYWdlc1sob3V0SW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gPVxuICAgICAgICAgICAgICAgICgoaW1hZ2VzWyhhSW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gfCAwKSB8IChpbWFnZXNbKGJJbWFnZVB0ciArIGxlbmd0aCkgfCAwXSB8IDApKSB8IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb3VudE5vblplcm8oaW1hZ2VQdHIpIHtcbiAgICAgICAgaW1hZ2VQdHIgPSBpbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIHN1bSA9IDAsXG4gICAgICAgICAgICBsZW5ndGggPSAwO1xuXG4gICAgICAgIGxlbmd0aCA9IGltdWwoc2l6ZSwgc2l6ZSkgfCAwO1xuXG4gICAgICAgIHdoaWxlICgobGVuZ3RoIHwgMCkgPiAwKSB7XG4gICAgICAgICAgICBsZW5ndGggPSAobGVuZ3RoIC0gMSkgfCAwO1xuICAgICAgICAgICAgc3VtID0gKChzdW0gfCAwKSArIChpbWFnZXNbKGltYWdlUHRyICsgbGVuZ3RoKSB8IDBdIHwgMCkpIHwgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoc3VtIHwgMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW5pdChpbWFnZVB0ciwgdmFsdWUpIHtcbiAgICAgICAgaW1hZ2VQdHIgPSBpbWFnZVB0ciB8IDA7XG4gICAgICAgIHZhbHVlID0gdmFsdWUgfCAwO1xuXG4gICAgICAgIHZhciBsZW5ndGggPSAwO1xuXG4gICAgICAgIGxlbmd0aCA9IGltdWwoc2l6ZSwgc2l6ZSkgfCAwO1xuXG4gICAgICAgIHdoaWxlICgobGVuZ3RoIHwgMCkgPiAwKSB7XG4gICAgICAgICAgICBsZW5ndGggPSAobGVuZ3RoIC0gMSkgfCAwO1xuICAgICAgICAgICAgaW1hZ2VzWyhpbWFnZVB0ciArIGxlbmd0aCkgfCAwXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGlsYXRlKGluSW1hZ2VQdHIsIG91dEltYWdlUHRyKSB7XG4gICAgICAgIGluSW1hZ2VQdHIgPSBpbkltYWdlUHRyIHwgMDtcbiAgICAgICAgb3V0SW1hZ2VQdHIgPSBvdXRJbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIHYgPSAwLFxuICAgICAgICAgICAgdSA9IDAsXG4gICAgICAgICAgICBzdW0gPSAwLFxuICAgICAgICAgICAgeVN0YXJ0MSA9IDAsXG4gICAgICAgICAgICB5U3RhcnQyID0gMCxcbiAgICAgICAgICAgIHhTdGFydDEgPSAwLFxuICAgICAgICAgICAgeFN0YXJ0MiA9IDAsXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xuXG4gICAgICAgIGZvciAoIHYgPSAxOyAodiB8IDApIDwgKChzaXplIC0gMSkgfCAwKTsgdiA9ICh2ICsgMSkgfCAwKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSAob2Zmc2V0ICsgc2l6ZSkgfCAwO1xuICAgICAgICAgICAgZm9yICggdSA9IDE7ICh1IHwgMCkgPCAoKHNpemUgLSAxKSB8IDApOyB1ID0gKHUgKyAxKSB8IDApIHtcbiAgICAgICAgICAgICAgICB5U3RhcnQxID0gKG9mZnNldCAtIHNpemUpIHwgMDtcbiAgICAgICAgICAgICAgICB5U3RhcnQyID0gKG9mZnNldCArIHNpemUpIHwgMDtcbiAgICAgICAgICAgICAgICB4U3RhcnQxID0gKHUgLSAxKSB8IDA7XG4gICAgICAgICAgICAgICAgeFN0YXJ0MiA9ICh1ICsgMSkgfCAwO1xuICAgICAgICAgICAgICAgIHN1bSA9ICgoaW1hZ2VzWyhpbkltYWdlUHRyICsgeVN0YXJ0MSArIHhTdGFydDEpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyB5U3RhcnQxICsgeFN0YXJ0MikgfCAwXSB8IDApXG4gICAgICAgICAgICAgICAgICAgICsgKGltYWdlc1soaW5JbWFnZVB0ciArIG9mZnNldCArIHUpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyB5U3RhcnQyICsgeFN0YXJ0MSkgfCAwXSB8IDApXG4gICAgICAgICAgICAgICAgICAgICsgKGltYWdlc1soaW5JbWFnZVB0ciArIHlTdGFydDIgKyB4U3RhcnQyKSB8IDBdIHwgMCkpIHwgMDtcbiAgICAgICAgICAgICAgICBpZiAoKHN1bSB8IDApID4gKDAgfCAwKSkge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZXNbKG91dEltYWdlUHRyICsgb2Zmc2V0ICsgdSkgfCAwXSA9IDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VzWyhvdXRJbWFnZVB0ciArIG9mZnNldCArIHUpIHwgMF0gPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVtY3B5KHNyY0ltYWdlUHRyLCBkc3RJbWFnZVB0cikge1xuICAgICAgICBzcmNJbWFnZVB0ciA9IHNyY0ltYWdlUHRyIHwgMDtcbiAgICAgICAgZHN0SW1hZ2VQdHIgPSBkc3RJbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IDA7XG5cbiAgICAgICAgbGVuZ3RoID0gaW11bChzaXplLCBzaXplKSB8IDA7XG5cbiAgICAgICAgd2hpbGUgKChsZW5ndGggfCAwKSA+IDApIHtcbiAgICAgICAgICAgIGxlbmd0aCA9IChsZW5ndGggLSAxKSB8IDA7XG4gICAgICAgICAgICBpbWFnZXNbKGRzdEltYWdlUHRyICsgbGVuZ3RoKSB8IDBdID0gKGltYWdlc1soc3JjSW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gfCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHplcm9Cb3JkZXIoaW1hZ2VQdHIpIHtcbiAgICAgICAgaW1hZ2VQdHIgPSBpbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIHggPSAwLFxuICAgICAgICAgICAgeSA9IDA7XG5cbiAgICAgICAgZm9yICggeCA9IDA7ICh4IHwgMCkgPCAoKHNpemUgLSAxKSB8IDApOyB4ID0gKHggKyAxKSB8IDApIHtcbiAgICAgICAgICAgIGltYWdlc1soaW1hZ2VQdHIgKyB4KSB8IDBdID0gMDtcbiAgICAgICAgICAgIGltYWdlc1soaW1hZ2VQdHIgKyB5KSB8IDBdID0gMDtcbiAgICAgICAgICAgIHkgPSAoKHkgKyBzaXplKSAtIDEpIHwgMDtcbiAgICAgICAgICAgIGltYWdlc1soaW1hZ2VQdHIgKyB5KSB8IDBdID0gMDtcbiAgICAgICAgICAgIHkgPSAoeSArIDEpIHwgMDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKCB4ID0gMDsgKHggfCAwKSA8IChzaXplIHwgMCk7IHggPSAoeCArIDEpIHwgMCkge1xuICAgICAgICAgICAgaW1hZ2VzWyhpbWFnZVB0ciArIHkpIHwgMF0gPSAwO1xuICAgICAgICAgICAgeSA9ICh5ICsgMSkgfCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tlbGV0b25pemUoKSB7XG4gICAgICAgIHZhciBzdWJJbWFnZVB0ciA9IDAsXG4gICAgICAgICAgICBlcm9kZWRJbWFnZVB0ciA9IDAsXG4gICAgICAgICAgICB0ZW1wSW1hZ2VQdHIgPSAwLFxuICAgICAgICAgICAgc2tlbEltYWdlUHRyID0gMCxcbiAgICAgICAgICAgIHN1bSA9IDAsXG4gICAgICAgICAgICBkb25lID0gMDtcblxuICAgICAgICBlcm9kZWRJbWFnZVB0ciA9IGltdWwoc2l6ZSwgc2l6ZSkgfCAwO1xuICAgICAgICB0ZW1wSW1hZ2VQdHIgPSAoZXJvZGVkSW1hZ2VQdHIgKyBlcm9kZWRJbWFnZVB0cikgfCAwO1xuICAgICAgICBza2VsSW1hZ2VQdHIgPSAodGVtcEltYWdlUHRyICsgZXJvZGVkSW1hZ2VQdHIpIHwgMDtcblxuICAgICAgICAvLyBpbml0IHNrZWwtaW1hZ2VcbiAgICAgICAgaW5pdChza2VsSW1hZ2VQdHIsIDApO1xuICAgICAgICB6ZXJvQm9yZGVyKHN1YkltYWdlUHRyKTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICBlcm9kZShzdWJJbWFnZVB0ciwgZXJvZGVkSW1hZ2VQdHIpO1xuICAgICAgICAgICAgZGlsYXRlKGVyb2RlZEltYWdlUHRyLCB0ZW1wSW1hZ2VQdHIpO1xuICAgICAgICAgICAgc3VidHJhY3Qoc3ViSW1hZ2VQdHIsIHRlbXBJbWFnZVB0ciwgdGVtcEltYWdlUHRyKTtcbiAgICAgICAgICAgIGJpdHdpc2VPcihza2VsSW1hZ2VQdHIsIHRlbXBJbWFnZVB0ciwgc2tlbEltYWdlUHRyKTtcbiAgICAgICAgICAgIG1lbWNweShlcm9kZWRJbWFnZVB0ciwgc3ViSW1hZ2VQdHIpO1xuICAgICAgICAgICAgc3VtID0gY291bnROb25aZXJvKHN1YkltYWdlUHRyKSB8IDA7XG4gICAgICAgICAgICBkb25lID0gKChzdW0gfCAwKSA9PSAwIHwgMCk7XG4gICAgICAgIH0gd2hpbGUgKCFkb25lKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2tlbGV0b25pemU6IHNrZWxldG9uaXplXG4gICAgfTtcbn1cbi8qIEBwcmVzZXJ2ZSBBU00gRU5EICovXG5leHBvcnQgZGVmYXVsdCBTa2VsZXRvbml6ZXI7XG4vKiBlc2xpbnQtZW5hYmxlIGVxZXFlcSovXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYXRvci9za2VsZXRvbml6ZXIuanMiLCJpbXBvcnQgQmFyY29kZVJlYWRlciBmcm9tICcuL2JhcmNvZGVfcmVhZGVyJztcblxuZnVuY3Rpb24gVHdvT2ZGaXZlUmVhZGVyKG9wdHMpIHtcbiAgICBCYXJjb2RlUmVhZGVyLmNhbGwodGhpcywgb3B0cyk7XG4gICAgdGhpcy5iYXJTcGFjZVJhdGlvID0gWzEsIDFdO1xufVxuXG52YXIgTiA9IDEsXG4gICAgVyA9IDMsXG4gICAgcHJvcGVydGllcyA9IHtcbiAgICAgICAgU1RBUlRfUEFUVEVSTjoge3ZhbHVlOiBbVywgTiwgVywgTiwgTiwgTl19LFxuICAgICAgICBTVE9QX1BBVFRFUk46IHt2YWx1ZTogW1csIE4sIE4sIE4sIFddfSxcbiAgICAgICAgQ09ERV9QQVRURVJOOiB7dmFsdWU6IFtcbiAgICAgICAgICAgIFtOLCBOLCBXLCBXLCBOXSxcbiAgICAgICAgICAgIFtXLCBOLCBOLCBOLCBXXSxcbiAgICAgICAgICAgIFtOLCBXLCBOLCBOLCBXXSxcbiAgICAgICAgICAgIFtXLCBXLCBOLCBOLCBOXSxcbiAgICAgICAgICAgIFtOLCBOLCBXLCBOLCBXXSxcbiAgICAgICAgICAgIFtXLCBOLCBXLCBOLCBOXSxcbiAgICAgICAgICAgIFtOLCBXLCBXLCBOLCBOXSxcbiAgICAgICAgICAgIFtOLCBOLCBOLCBXLCBXXSxcbiAgICAgICAgICAgIFtXLCBOLCBOLCBXLCBOXSxcbiAgICAgICAgICAgIFtOLCBXLCBOLCBXLCBOXVxuICAgICAgICBdfSxcbiAgICAgICAgU0lOR0xFX0NPREVfRVJST1I6IHt2YWx1ZTogMC43OCwgd3JpdGFibGU6IHRydWV9LFxuICAgICAgICBBVkdfQ09ERV9FUlJPUjoge3ZhbHVlOiAwLjMwLCB3cml0YWJsZTogdHJ1ZX0sXG4gICAgICAgIEZPUk1BVDoge3ZhbHVlOiBcIjJvZjVcIn1cbiAgICB9O1xuXG5jb25zdCBzdGFydFBhdHRlcm5MZW5ndGggPSBwcm9wZXJ0aWVzLlNUQVJUX1BBVFRFUk4udmFsdWUucmVkdWNlKChzdW0sIHZhbCkgPT4gc3VtICsgdmFsLCAwKTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQmFyY29kZVJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFR3b09mRml2ZVJlYWRlcjtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZmluZFBhdHRlcm4gPSBmdW5jdGlvbihwYXR0ZXJuLCBvZmZzZXQsIGlzV2hpdGUsIHRyeUhhcmRlcikge1xuICAgIHZhciBjb3VudGVyID0gW10sXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yLFxuICAgICAgICBqLFxuICAgICAgICBzdW0sXG4gICAgICAgIGVwc2lsb24gPSBzZWxmLkFWR19DT0RFX0VSUk9SO1xuXG4gICAgaXNXaGl0ZSA9IGlzV2hpdGUgfHwgZmFsc2U7XG4gICAgdHJ5SGFyZGVyID0gdHJ5SGFyZGVyIHx8IGZhbHNlO1xuXG4gICAgaWYgKCFvZmZzZXQpIHtcbiAgICAgICAgb2Zmc2V0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3cpO1xuICAgIH1cblxuICAgIGZvciAoIGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb3VudGVyW2ldID0gMDtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gb2Zmc2V0OyBpIDwgc2VsZi5fcm93Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY291bnRlclBvcyA9PT0gY291bnRlci5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50ZXJbal07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVycm9yID0gc2VsZi5fbWF0Y2hQYXR0ZXJuKGNvdW50ZXIsIHBhdHRlcm4pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGVwc2lsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5zdGFydCA9IGkgLSBzdW07XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lbmQgPSBpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHJ5SGFyZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjb3VudGVyLmxlbmd0aCAtIDI7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlcltqXSA9IGNvdW50ZXJbaiArIDJdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAyXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAxXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MtLTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0LFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIHN0YXJ0SW5mbyxcbiAgICAgICAgbmFycm93QmFyV2lkdGggPSAxO1xuXG4gICAgd2hpbGUgKCFzdGFydEluZm8pIHtcbiAgICAgICAgc3RhcnRJbmZvID0gc2VsZi5fZmluZFBhdHRlcm4oc2VsZi5TVEFSVF9QQVRURVJOLCBvZmZzZXQsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgaWYgKCFzdGFydEluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIG5hcnJvd0JhcldpZHRoID0gTWF0aC5mbG9vcigoc3RhcnRJbmZvLmVuZCAtIHN0YXJ0SW5mby5zdGFydCkgLyBzdGFydFBhdHRlcm5MZW5ndGgpO1xuICAgICAgICBsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0ID0gc3RhcnRJbmZvLnN0YXJ0IC0gbmFycm93QmFyV2lkdGggKiA1O1xuICAgICAgICBpZiAobGVhZGluZ1doaXRlc3BhY2VTdGFydCA+PSAwKSB7XG4gICAgICAgICAgICBpZiAoc2VsZi5fbWF0Y2hSYW5nZShsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0LCBzdGFydEluZm8uc3RhcnQsIDApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0SW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvZmZzZXQgPSBzdGFydEluZm8uZW5kO1xuICAgICAgICBzdGFydEluZm8gPSBudWxsO1xuICAgIH1cbn07XG5cblR3b09mRml2ZVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGVuZEluZm8pIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZDtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IGVuZEluZm8uZW5kICsgKChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpIC8gMik7XG4gICAgaWYgKHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA8IHNlbGYuX3Jvdy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UoZW5kSW5mby5lbmQsIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRJbmZvO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZmluZEVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgZW5kSW5mbyxcbiAgICAgICAgdG1wLFxuICAgICAgICBvZmZzZXQ7XG5cbiAgICBzZWxmLl9yb3cucmV2ZXJzZSgpO1xuICAgIG9mZnNldCA9IHNlbGYuX25leHRTZXQoc2VsZi5fcm93KTtcbiAgICBlbmRJbmZvID0gc2VsZi5fZmluZFBhdHRlcm4oc2VsZi5TVE9QX1BBVFRFUk4sIG9mZnNldCwgZmFsc2UsIHRydWUpO1xuICAgIHNlbGYuX3Jvdy5yZXZlcnNlKCk7XG5cbiAgICBpZiAoZW5kSW5mbyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyByZXZlcnNlIG51bWJlcnNcbiAgICB0bXAgPSBlbmRJbmZvLnN0YXJ0O1xuICAgIGVuZEluZm8uc3RhcnQgPSBzZWxmLl9yb3cubGVuZ3RoIC0gZW5kSW5mby5lbmQ7XG4gICAgZW5kSW5mby5lbmQgPSBzZWxmLl9yb3cubGVuZ3RoIC0gdG1wO1xuXG4gICAgcmV0dXJuIGVuZEluZm8gIT09IG51bGwgPyBzZWxmLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UoZW5kSW5mbykgOiBudWxsO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlQ29kZSA9IGZ1bmN0aW9uKGNvdW50ZXIpIHtcbiAgICB2YXIgaixcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIHN1bSA9IDAsXG4gICAgICAgIG5vcm1hbGl6ZWQsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBlcHNpbG9uID0gc2VsZi5BVkdfQ09ERV9FUlJPUixcbiAgICAgICAgY29kZSxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH07XG5cbiAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgc3VtICs9IGNvdW50ZXJbal07XG4gICAgfVxuICAgIGZvciAoY29kZSA9IDA7IGNvZGUgPCBzZWxmLkNPREVfUEFUVEVSTi5sZW5ndGg7IGNvZGUrKykge1xuICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGJlc3RNYXRjaC5lcnJvciA8IGVwc2lsb24pIHtcbiAgICAgICAgcmV0dXJuIGJlc3RNYXRjaDtcbiAgICB9XG59O1xuXG5Ud29PZkZpdmVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY291bnRlcnMsIHJlc3VsdCwgZGVjb2RlZENvZGVzKSB7XG4gICAgdmFyIGksXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBwb3MgPSAwLFxuICAgICAgICBjb3VudGVyTGVuZ3RoID0gY291bnRlcnMubGVuZ3RoLFxuICAgICAgICBjb3VudGVyID0gWzAsIDAsIDAsIDAsIDBdLFxuICAgICAgICBjb2RlO1xuXG4gICAgd2hpbGUgKHBvcyA8IGNvdW50ZXJMZW5ndGgpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgICAgICAgY291bnRlcltpXSA9IGNvdW50ZXJzW3Bvc10gKiB0aGlzLmJhclNwYWNlUmF0aW9bMF07XG4gICAgICAgICAgICBwb3MgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb3VudGVyKTtcbiAgICAgICAgaWYgKCFjb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChjb2RlLmNvZGUgKyBcIlwiKTtcbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBjb2RlO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fdmVyaWZ5Q291bnRlckxlbmd0aCA9IGZ1bmN0aW9uKGNvdW50ZXJzKSB7XG4gICAgcmV0dXJuIChjb3VudGVycy5sZW5ndGggJSAxMCA9PT0gMCk7XG59O1xuXG5Ud29PZkZpdmVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhcnRJbmZvLFxuICAgICAgICBlbmRJbmZvLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICBjb3VudGVycztcblxuICAgIHN0YXJ0SW5mbyA9IHNlbGYuX2ZpbmRTdGFydCgpO1xuICAgIGlmICghc3RhcnRJbmZvKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChzdGFydEluZm8pO1xuXG4gICAgZW5kSW5mbyA9IHNlbGYuX2ZpbmRFbmQoKTtcbiAgICBpZiAoIWVuZEluZm8pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY291bnRlcnMgPSBzZWxmLl9maWxsQ291bnRlcnMoc3RhcnRJbmZvLmVuZCwgZW5kSW5mby5zdGFydCwgZmFsc2UpO1xuICAgIGlmICghc2VsZi5fdmVyaWZ5Q291bnRlckxlbmd0aChjb3VudGVycykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVQYXlsb2FkKGNvdW50ZXJzLCByZXN1bHQsIGRlY29kZWRDb2Rlcyk7XG4gICAgaWYgKCFjb2RlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA8IDUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZGVjb2RlZENvZGVzLnB1c2goZW5kSW5mbyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydEluZm8uc3RhcnQsXG4gICAgICAgIGVuZDogZW5kSW5mby5lbmQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnRJbmZvLFxuICAgICAgICBkZWNvZGVkQ29kZXM6IGRlY29kZWRDb2Rlc1xuICAgIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUd29PZkZpdmVSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyLzJvZjVfcmVhZGVyLmpzIiwiaW1wb3J0IEJhcmNvZGVSZWFkZXIgZnJvbSAnLi9iYXJjb2RlX3JlYWRlcic7XG5cbmZ1bmN0aW9uIENvZGFiYXJSZWFkZXIoKSB7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMpO1xuICAgIHRoaXMuX2NvdW50ZXJzID0gW107XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEFMUEhBQkVUSF9TVFJJTkc6IHt2YWx1ZTogXCIwMTIzNDU2Nzg5LSQ6Ly4rQUJDRFwifSxcbiAgICBBTFBIQUJFVDoge3ZhbHVlOiBbNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDQ1LCAzNiwgNTgsIDQ3LCA0NiwgNDMsIDY1LCA2NiwgNjcsIDY4XX0sXG4gICAgQ0hBUkFDVEVSX0VOQ09ESU5HUzoge3ZhbHVlOiBbMHgwMDMsIDB4MDA2LCAweDAwOSwgMHgwNjAsIDB4MDEyLCAweDA0MiwgMHgwMjEsIDB4MDI0LCAweDAzMCwgMHgwNDgsIDB4MDBjLCAweDAxOCxcbiAgICAgICAgMHgwNDUsIDB4MDUxLCAweDA1NCwgMHgwMTUsIDB4MDFBLCAweDAyOSwgMHgwMEIsIDB4MDBFXX0sXG4gICAgU1RBUlRfRU5EOiB7dmFsdWU6IFsweDAxQSwgMHgwMjksIDB4MDBCLCAweDAwRV19LFxuICAgIE1JTl9FTkNPREVEX0NIQVJTOiB7dmFsdWU6IDR9LFxuICAgIE1BWF9BQ0NFUFRBQkxFOiB7dmFsdWU6IDIuMH0sXG4gICAgUEFERElORzoge3ZhbHVlOiAxLjV9LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcImNvZGFiYXJcIiwgd3JpdGVhYmxlOiBmYWxzZX1cbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvZGFiYXJSZWFkZXI7XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZGVjb2RlZENoYXIsXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICAgIG5leHRTdGFydCxcbiAgICAgICAgZW5kO1xuXG4gICAgdGhpcy5fY291bnRlcnMgPSBzZWxmLl9maWxsQ291bnRlcnMoKTtcbiAgICBzdGFydCA9IHNlbGYuX2ZpbmRTdGFydCgpO1xuICAgIGlmICghc3RhcnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIG5leHRTdGFydCA9IHN0YXJ0LnN0YXJ0Q291bnRlcjtcblxuICAgIGRvIHtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX3RvUGF0dGVybihuZXh0U3RhcnQpO1xuICAgICAgICBpZiAocGF0dGVybiA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGRlY29kZWRDaGFyID0gc2VsZi5fcGF0dGVyblRvQ2hhcihwYXR0ZXJuKTtcbiAgICAgICAgaWYgKGRlY29kZWRDaGFyIDwgMCl7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChkZWNvZGVkQ2hhcik7XG4gICAgICAgIG5leHRTdGFydCArPSA4O1xuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDEgJiYgc2VsZi5faXNTdGFydEVuZChwYXR0ZXJuKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9IHdoaWxlIChuZXh0U3RhcnQgPCBzZWxmLl9jb3VudGVycy5sZW5ndGgpO1xuXG4gICAgLy8gdmVyaWZ5IGVuZFxuICAgIGlmICgocmVzdWx0Lmxlbmd0aCAtIDIpIDwgc2VsZi5NSU5fRU5DT0RFRF9DSEFSUyB8fCAhc2VsZi5faXNTdGFydEVuZChwYXR0ZXJuKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgZW5kIHdoaXRlIHNwYWNlXG4gICAgaWYgKCFzZWxmLl92ZXJpZnlXaGl0ZXNwYWNlKHN0YXJ0LnN0YXJ0Q291bnRlciwgbmV4dFN0YXJ0IC0gOCkpe1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXNlbGYuX3ZhbGlkYXRlUmVzdWx0KHJlc3VsdCwgc3RhcnQuc3RhcnRDb3VudGVyKSl7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIG5leHRTdGFydCA9IG5leHRTdGFydCA+IHNlbGYuX2NvdW50ZXJzLmxlbmd0aCA/IHNlbGYuX2NvdW50ZXJzLmxlbmd0aCA6IG5leHRTdGFydDtcbiAgICBlbmQgPSBzdGFydC5zdGFydCArIHNlbGYuX3N1bUNvdW50ZXJzKHN0YXJ0LnN0YXJ0Q291bnRlciwgbmV4dFN0YXJ0IC0gOCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiByZXN1bHQuam9pbihcIlwiKSxcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LnN0YXJ0LFxuICAgICAgICBlbmQ6IGVuZCxcbiAgICAgICAgc3RhcnRJbmZvOiBzdGFydCxcbiAgICAgICAgZGVjb2RlZENvZGVzOiByZXN1bHRcbiAgICB9O1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVdoaXRlc3BhY2UgPSBmdW5jdGlvbihzdGFydENvdW50ZXIsIGVuZENvdW50ZXIpIHtcbiAgICBpZiAoKHN0YXJ0Q291bnRlciAtIDEgPD0gMClcbiAgICAgICAgICAgIHx8IHRoaXMuX2NvdW50ZXJzW3N0YXJ0Q291bnRlciAtIDFdID49ICh0aGlzLl9jYWxjdWxhdGVQYXR0ZXJuTGVuZ3RoKHN0YXJ0Q291bnRlcikgLyAyLjApKSB7XG4gICAgICAgIGlmICgoZW5kQ291bnRlciArIDggPj0gdGhpcy5fY291bnRlcnMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHx8IHRoaXMuX2NvdW50ZXJzW2VuZENvdW50ZXIgKyA3XSA+PSAodGhpcy5fY2FsY3VsYXRlUGF0dGVybkxlbmd0aChlbmRDb3VudGVyKSAvIDIuMCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9jYWxjdWxhdGVQYXR0ZXJuTGVuZ3RoID0gZnVuY3Rpb24ob2Zmc2V0KSB7XG4gICAgdmFyIGksXG4gICAgICAgIHN1bSA9IDA7XG5cbiAgICBmb3IgKGkgPSBvZmZzZXQ7IGkgPCBvZmZzZXQgKyA3OyBpKyspIHtcbiAgICAgICAgc3VtICs9IHRoaXMuX2NvdW50ZXJzW2ldO1xuICAgIH1cblxuICAgIHJldHVybiBzdW07XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fdGhyZXNob2xkUmVzdWx0UGF0dGVybiA9IGZ1bmN0aW9uKHJlc3VsdCwgc3RhcnRDb3VudGVyKXtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNhdGVnb3JpemF0aW9uID0ge1xuICAgICAgICAgICAgc3BhY2U6IHtcbiAgICAgICAgICAgICAgICBuYXJyb3c6IHsgc2l6ZTogMCwgY291bnRzOiAwLCBtaW46IDAsIG1heDogTnVtYmVyLk1BWF9WQUxVRX0sXG4gICAgICAgICAgICAgICAgd2lkZToge3NpemU6IDAsIGNvdW50czogMCwgbWluOiAwLCBtYXg6IE51bWJlci5NQVhfVkFMVUV9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmFyOiB7XG4gICAgICAgICAgICAgICAgbmFycm93OiB7IHNpemU6IDAsIGNvdW50czogMCwgbWluOiAwLCBtYXg6IE51bWJlci5NQVhfVkFMVUV9LFxuICAgICAgICAgICAgICAgIHdpZGU6IHsgc2l6ZTogMCwgY291bnRzOiAwLCBtaW46IDAsIG1heDogTnVtYmVyLk1BWF9WQUxVRX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAga2luZCxcbiAgICAgICAgY2F0LFxuICAgICAgICBpLFxuICAgICAgICBqLFxuICAgICAgICBwb3MgPSBzdGFydENvdW50ZXIsXG4gICAgICAgIHBhdHRlcm47XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX2NoYXJUb1BhdHRlcm4ocmVzdWx0W2ldKTtcbiAgICAgICAgZm9yIChqID0gNjsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGtpbmQgPSAoaiAmIDEpID09PSAyID8gY2F0ZWdvcml6YXRpb24uYmFyIDogY2F0ZWdvcml6YXRpb24uc3BhY2U7XG4gICAgICAgICAgICBjYXQgPSAocGF0dGVybiAmIDEpID09PSAxID8ga2luZC53aWRlIDoga2luZC5uYXJyb3c7XG4gICAgICAgICAgICBjYXQuc2l6ZSArPSBzZWxmLl9jb3VudGVyc1twb3MgKyBqXTtcbiAgICAgICAgICAgIGNhdC5jb3VudHMrKztcbiAgICAgICAgICAgIHBhdHRlcm4gPj49IDE7XG4gICAgICAgIH1cbiAgICAgICAgcG9zICs9IDg7XG4gICAgfVxuXG4gICAgW1wic3BhY2VcIiwgXCJiYXJcIl0uZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgdmFyIG5ld2tpbmQgPSBjYXRlZ29yaXphdGlvbltrZXldO1xuICAgICAgICBuZXdraW5kLndpZGUubWluID1cbiAgICAgICAgICAgIE1hdGguZmxvb3IoKG5ld2tpbmQubmFycm93LnNpemUgLyBuZXdraW5kLm5hcnJvdy5jb3VudHMgKyBuZXdraW5kLndpZGUuc2l6ZSAvIG5ld2tpbmQud2lkZS5jb3VudHMpIC8gMik7XG4gICAgICAgIG5ld2tpbmQubmFycm93Lm1heCA9IE1hdGguY2VpbChuZXdraW5kLndpZGUubWluKTtcbiAgICAgICAgbmV3a2luZC53aWRlLm1heCA9IE1hdGguY2VpbCgobmV3a2luZC53aWRlLnNpemUgKiBzZWxmLk1BWF9BQ0NFUFRBQkxFICsgc2VsZi5QQURESU5HKSAvIG5ld2tpbmQud2lkZS5jb3VudHMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNhdGVnb3JpemF0aW9uO1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX2NoYXJUb1BhdHRlcm4gPSBmdW5jdGlvbihjaGFyKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBjaGFyQ29kZSA9IGNoYXIuY2hhckNvZGVBdCgwKSxcbiAgICAgICAgaTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBzZWxmLkFMUEhBQkVULmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLkFMUEhBQkVUW2ldID09PSBjaGFyQ29kZSl7XG4gICAgICAgICAgICByZXR1cm4gc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAweDA7XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fdmFsaWRhdGVSZXN1bHQgPSBmdW5jdGlvbihyZXN1bHQsIHN0YXJ0Q291bnRlcikge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgdGhyZXNob2xkcyA9IHNlbGYuX3RocmVzaG9sZFJlc3VsdFBhdHRlcm4ocmVzdWx0LCBzdGFydENvdW50ZXIpLFxuICAgICAgICBpLFxuICAgICAgICBqLFxuICAgICAgICBraW5kLFxuICAgICAgICBjYXQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIHBvcyA9IHN0YXJ0Q291bnRlcixcbiAgICAgICAgcGF0dGVybjtcblxuICAgIGZvciAoaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX2NoYXJUb1BhdHRlcm4ocmVzdWx0W2ldKTtcbiAgICAgICAgZm9yIChqID0gNjsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGtpbmQgPSAoaiAmIDEpID09PSAwID8gdGhyZXNob2xkcy5iYXIgOiB0aHJlc2hvbGRzLnNwYWNlO1xuICAgICAgICAgICAgY2F0ID0gKHBhdHRlcm4gJiAxKSA9PT0gMSA/IGtpbmQud2lkZSA6IGtpbmQubmFycm93O1xuICAgICAgICAgICAgc2l6ZSA9IHNlbGYuX2NvdW50ZXJzW3BvcyArIGpdO1xuICAgICAgICAgICAgaWYgKHNpemUgPCBjYXQubWluIHx8IHNpemUgPiBjYXQubWF4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF0dGVybiA+Pj0gMTtcbiAgICAgICAgfVxuICAgICAgICBwb3MgKz0gODtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fcGF0dGVyblRvQ2hhciA9IGZ1bmN0aW9uKHBhdHRlcm4pIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXM7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLkNIQVJBQ1RFUl9FTkNPRElOR1NbaV0gPT09IHBhdHRlcm4pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHNlbGYuQUxQSEFCRVRbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9jb21wdXRlQWx0ZXJuYXRpbmdUaHJlc2hvbGQgPSBmdW5jdGlvbihvZmZzZXQsIGVuZCkge1xuICAgIHZhciBpLFxuICAgICAgICBtaW4gPSBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICBtYXggPSAwLFxuICAgICAgICBjb3VudGVyO1xuXG4gICAgZm9yIChpID0gb2Zmc2V0OyBpIDwgZW5kOyBpICs9IDIpe1xuICAgICAgICBjb3VudGVyID0gdGhpcy5fY291bnRlcnNbaV07XG4gICAgICAgIGlmIChjb3VudGVyID4gbWF4KSB7XG4gICAgICAgICAgICBtYXggPSBjb3VudGVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudGVyIDwgbWluKSB7XG4gICAgICAgICAgICBtaW4gPSBjb3VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICgobWluICsgbWF4KSAvIDIuMCkgfCAwO1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX3RvUGF0dGVybiA9IGZ1bmN0aW9uKG9mZnNldCkge1xuICAgIHZhciBudW1Db3VudGVycyA9IDcsXG4gICAgICAgIGVuZCA9IG9mZnNldCArIG51bUNvdW50ZXJzLFxuICAgICAgICBiYXJUaHJlc2hvbGQsXG4gICAgICAgIHNwYWNlVGhyZXNob2xkLFxuICAgICAgICBiaXRtYXNrID0gMSA8PCAobnVtQ291bnRlcnMgLSAxKSxcbiAgICAgICAgcGF0dGVybiA9IDAsXG4gICAgICAgIGksXG4gICAgICAgIHRocmVzaG9sZDtcblxuICAgIGlmIChlbmQgPiB0aGlzLl9jb3VudGVycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIGJhclRocmVzaG9sZCA9IHRoaXMuX2NvbXB1dGVBbHRlcm5hdGluZ1RocmVzaG9sZChvZmZzZXQsIGVuZCk7XG4gICAgc3BhY2VUaHJlc2hvbGQgPSB0aGlzLl9jb21wdXRlQWx0ZXJuYXRpbmdUaHJlc2hvbGQob2Zmc2V0ICsgMSwgZW5kKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBudW1Db3VudGVyczsgaSsrKXtcbiAgICAgICAgdGhyZXNob2xkID0gKGkgJiAxKSA9PT0gMCA/IGJhclRocmVzaG9sZCA6IHNwYWNlVGhyZXNob2xkO1xuICAgICAgICBpZiAodGhpcy5fY291bnRlcnNbb2Zmc2V0ICsgaV0gPiB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gfD0gYml0bWFzaztcbiAgICAgICAgfVxuICAgICAgICBiaXRtYXNrID4+PSAxO1xuICAgIH1cblxuICAgIHJldHVybiBwYXR0ZXJuO1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX2lzU3RhcnRFbmQgPSBmdW5jdGlvbihwYXR0ZXJuKSB7XG4gICAgdmFyIGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5TVEFSVF9FTkQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRoaXMuU1RBUlRfRU5EW2ldID09PSBwYXR0ZXJuKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fc3VtQ291bnRlcnMgPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7XG4gICAgdmFyIGksXG4gICAgICAgIHN1bSA9IDA7XG5cbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgIHN1bSArPSB0aGlzLl9jb3VudGVyc1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bTtcbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9maW5kU3RhcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGksXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICAgIHN0YXJ0ID0gc2VsZi5fbmV4dFVuc2V0KHNlbGYuX3JvdyksXG4gICAgICAgIGVuZDtcblxuICAgIGZvciAoaSA9IDE7IGkgPCB0aGlzLl9jb3VudGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXR0ZXJuID0gc2VsZi5fdG9QYXR0ZXJuKGkpO1xuICAgICAgICBpZiAocGF0dGVybiAhPT0gLTEgJiYgc2VsZi5faXNTdGFydEVuZChwYXR0ZXJuKSkge1xuICAgICAgICAgICAgLy8gVE9ETzogTG9vayBmb3Igd2hpdGVzcGFjZSBhaGVhZFxuICAgICAgICAgICAgc3RhcnQgKz0gc2VsZi5fc3VtQ291bnRlcnMoMCwgaSk7XG4gICAgICAgICAgICBlbmQgPSBzdGFydCArIHNlbGYuX3N1bUNvdW50ZXJzKGksIGkgKyA4KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgICAgIGVuZDogZW5kLFxuICAgICAgICAgICAgICAgIHN0YXJ0Q291bnRlcjogaSxcbiAgICAgICAgICAgICAgICBlbmRDb3VudGVyOiBpICsgOFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGFiYXJSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2NvZGFiYXJfcmVhZGVyLmpzIiwiaW1wb3J0IEJhcmNvZGVSZWFkZXIgZnJvbSAnLi9iYXJjb2RlX3JlYWRlcic7XG5cbmZ1bmN0aW9uIENvZGUxMjhSZWFkZXIoKSB7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBDT0RFX1NISUZUOiB7dmFsdWU6IDk4fSxcbiAgICBDT0RFX0M6IHt2YWx1ZTogOTl9LFxuICAgIENPREVfQjoge3ZhbHVlOiAxMDB9LFxuICAgIENPREVfQToge3ZhbHVlOiAxMDF9LFxuICAgIFNUQVJUX0NPREVfQToge3ZhbHVlOiAxMDN9LFxuICAgIFNUQVJUX0NPREVfQjoge3ZhbHVlOiAxMDR9LFxuICAgIFNUQVJUX0NPREVfQzoge3ZhbHVlOiAxMDV9LFxuICAgIFNUT1BfQ09ERToge3ZhbHVlOiAxMDZ9LFxuICAgIENPREVfUEFUVEVSTjoge3ZhbHVlOiBbXG4gICAgICAgIFsyLCAxLCAyLCAyLCAyLCAyXSxcbiAgICAgICAgWzIsIDIsIDIsIDEsIDIsIDJdLFxuICAgICAgICBbMiwgMiwgMiwgMiwgMiwgMV0sXG4gICAgICAgIFsxLCAyLCAxLCAyLCAyLCAzXSxcbiAgICAgICAgWzEsIDIsIDEsIDMsIDIsIDJdLFxuICAgICAgICBbMSwgMywgMSwgMiwgMiwgMl0sXG4gICAgICAgIFsxLCAyLCAyLCAyLCAxLCAzXSxcbiAgICAgICAgWzEsIDIsIDIsIDMsIDEsIDJdLFxuICAgICAgICBbMSwgMywgMiwgMiwgMSwgMl0sXG4gICAgICAgIFsyLCAyLCAxLCAyLCAxLCAzXSxcbiAgICAgICAgWzIsIDIsIDEsIDMsIDEsIDJdLFxuICAgICAgICBbMiwgMywgMSwgMiwgMSwgMl0sXG4gICAgICAgIFsxLCAxLCAyLCAyLCAzLCAyXSxcbiAgICAgICAgWzEsIDIsIDIsIDEsIDMsIDJdLFxuICAgICAgICBbMSwgMiwgMiwgMiwgMywgMV0sXG4gICAgICAgIFsxLCAxLCAzLCAyLCAyLCAyXSxcbiAgICAgICAgWzEsIDIsIDMsIDEsIDIsIDJdLFxuICAgICAgICBbMSwgMiwgMywgMiwgMiwgMV0sXG4gICAgICAgIFsyLCAyLCAzLCAyLCAxLCAxXSxcbiAgICAgICAgWzIsIDIsIDEsIDEsIDMsIDJdLFxuICAgICAgICBbMiwgMiwgMSwgMiwgMywgMV0sXG4gICAgICAgIFsyLCAxLCAzLCAyLCAxLCAyXSxcbiAgICAgICAgWzIsIDIsIDMsIDEsIDEsIDJdLFxuICAgICAgICBbMywgMSwgMiwgMSwgMywgMV0sXG4gICAgICAgIFszLCAxLCAxLCAyLCAyLCAyXSxcbiAgICAgICAgWzMsIDIsIDEsIDEsIDIsIDJdLFxuICAgICAgICBbMywgMiwgMSwgMiwgMiwgMV0sXG4gICAgICAgIFszLCAxLCAyLCAyLCAxLCAyXSxcbiAgICAgICAgWzMsIDIsIDIsIDEsIDEsIDJdLFxuICAgICAgICBbMywgMiwgMiwgMiwgMSwgMV0sXG4gICAgICAgIFsyLCAxLCAyLCAxLCAyLCAzXSxcbiAgICAgICAgWzIsIDEsIDIsIDMsIDIsIDFdLFxuICAgICAgICBbMiwgMywgMiwgMSwgMiwgMV0sXG4gICAgICAgIFsxLCAxLCAxLCAzLCAyLCAzXSxcbiAgICAgICAgWzEsIDMsIDEsIDEsIDIsIDNdLFxuICAgICAgICBbMSwgMywgMSwgMywgMiwgMV0sXG4gICAgICAgIFsxLCAxLCAyLCAzLCAxLCAzXSxcbiAgICAgICAgWzEsIDMsIDIsIDEsIDEsIDNdLFxuICAgICAgICBbMSwgMywgMiwgMywgMSwgMV0sXG4gICAgICAgIFsyLCAxLCAxLCAzLCAxLCAzXSxcbiAgICAgICAgWzIsIDMsIDEsIDEsIDEsIDNdLFxuICAgICAgICBbMiwgMywgMSwgMywgMSwgMV0sXG4gICAgICAgIFsxLCAxLCAyLCAxLCAzLCAzXSxcbiAgICAgICAgWzEsIDEsIDIsIDMsIDMsIDFdLFxuICAgICAgICBbMSwgMywgMiwgMSwgMywgMV0sXG4gICAgICAgIFsxLCAxLCAzLCAxLCAyLCAzXSxcbiAgICAgICAgWzEsIDEsIDMsIDMsIDIsIDFdLFxuICAgICAgICBbMSwgMywgMywgMSwgMiwgMV0sXG4gICAgICAgIFszLCAxLCAzLCAxLCAyLCAxXSxcbiAgICAgICAgWzIsIDEsIDEsIDMsIDMsIDFdLFxuICAgICAgICBbMiwgMywgMSwgMSwgMywgMV0sXG4gICAgICAgIFsyLCAxLCAzLCAxLCAxLCAzXSxcbiAgICAgICAgWzIsIDEsIDMsIDMsIDEsIDFdLFxuICAgICAgICBbMiwgMSwgMywgMSwgMywgMV0sXG4gICAgICAgIFszLCAxLCAxLCAxLCAyLCAzXSxcbiAgICAgICAgWzMsIDEsIDEsIDMsIDIsIDFdLFxuICAgICAgICBbMywgMywgMSwgMSwgMiwgMV0sXG4gICAgICAgIFszLCAxLCAyLCAxLCAxLCAzXSxcbiAgICAgICAgWzMsIDEsIDIsIDMsIDEsIDFdLFxuICAgICAgICBbMywgMywgMiwgMSwgMSwgMV0sXG4gICAgICAgIFszLCAxLCA0LCAxLCAxLCAxXSxcbiAgICAgICAgWzIsIDIsIDEsIDQsIDEsIDFdLFxuICAgICAgICBbNCwgMywgMSwgMSwgMSwgMV0sXG4gICAgICAgIFsxLCAxLCAxLCAyLCAyLCA0XSxcbiAgICAgICAgWzEsIDEsIDEsIDQsIDIsIDJdLFxuICAgICAgICBbMSwgMiwgMSwgMSwgMiwgNF0sXG4gICAgICAgIFsxLCAyLCAxLCA0LCAyLCAxXSxcbiAgICAgICAgWzEsIDQsIDEsIDEsIDIsIDJdLFxuICAgICAgICBbMSwgNCwgMSwgMiwgMiwgMV0sXG4gICAgICAgIFsxLCAxLCAyLCAyLCAxLCA0XSxcbiAgICAgICAgWzEsIDEsIDIsIDQsIDEsIDJdLFxuICAgICAgICBbMSwgMiwgMiwgMSwgMSwgNF0sXG4gICAgICAgIFsxLCAyLCAyLCA0LCAxLCAxXSxcbiAgICAgICAgWzEsIDQsIDIsIDEsIDEsIDJdLFxuICAgICAgICBbMSwgNCwgMiwgMiwgMSwgMV0sXG4gICAgICAgIFsyLCA0LCAxLCAyLCAxLCAxXSxcbiAgICAgICAgWzIsIDIsIDEsIDEsIDEsIDRdLFxuICAgICAgICBbNCwgMSwgMywgMSwgMSwgMV0sXG4gICAgICAgIFsyLCA0LCAxLCAxLCAxLCAyXSxcbiAgICAgICAgWzEsIDMsIDQsIDEsIDEsIDFdLFxuICAgICAgICBbMSwgMSwgMSwgMiwgNCwgMl0sXG4gICAgICAgIFsxLCAyLCAxLCAxLCA0LCAyXSxcbiAgICAgICAgWzEsIDIsIDEsIDIsIDQsIDFdLFxuICAgICAgICBbMSwgMSwgNCwgMiwgMSwgMl0sXG4gICAgICAgIFsxLCAyLCA0LCAxLCAxLCAyXSxcbiAgICAgICAgWzEsIDIsIDQsIDIsIDEsIDFdLFxuICAgICAgICBbNCwgMSwgMSwgMiwgMSwgMl0sXG4gICAgICAgIFs0LCAyLCAxLCAxLCAxLCAyXSxcbiAgICAgICAgWzQsIDIsIDEsIDIsIDEsIDFdLFxuICAgICAgICBbMiwgMSwgMiwgMSwgNCwgMV0sXG4gICAgICAgIFsyLCAxLCA0LCAxLCAyLCAxXSxcbiAgICAgICAgWzQsIDEsIDIsIDEsIDIsIDFdLFxuICAgICAgICBbMSwgMSwgMSwgMSwgNCwgM10sXG4gICAgICAgIFsxLCAxLCAxLCAzLCA0LCAxXSxcbiAgICAgICAgWzEsIDMsIDEsIDEsIDQsIDFdLFxuICAgICAgICBbMSwgMSwgNCwgMSwgMSwgM10sXG4gICAgICAgIFsxLCAxLCA0LCAzLCAxLCAxXSxcbiAgICAgICAgWzQsIDEsIDEsIDEsIDEsIDNdLFxuICAgICAgICBbNCwgMSwgMSwgMywgMSwgMV0sXG4gICAgICAgIFsxLCAxLCAzLCAxLCA0LCAxXSxcbiAgICAgICAgWzEsIDEsIDQsIDEsIDMsIDFdLFxuICAgICAgICBbMywgMSwgMSwgMSwgNCwgMV0sXG4gICAgICAgIFs0LCAxLCAxLCAxLCAzLCAxXSxcbiAgICAgICAgWzIsIDEsIDEsIDQsIDEsIDJdLFxuICAgICAgICBbMiwgMSwgMSwgMiwgMSwgNF0sXG4gICAgICAgIFsyLCAxLCAxLCAyLCAzLCAyXSxcbiAgICAgICAgWzIsIDMsIDMsIDEsIDEsIDEsIDJdXG4gICAgXX0sXG4gICAgU0lOR0xFX0NPREVfRVJST1I6IHt2YWx1ZTogMC42NH0sXG4gICAgQVZHX0NPREVfRVJST1I6IHt2YWx1ZTogMC4zMH0sXG4gICAgRk9STUFUOiB7dmFsdWU6IFwiY29kZV8xMjhcIiwgd3JpdGVhYmxlOiBmYWxzZX0sXG4gICAgTU9EVUxFX0lORElDRVM6IHt2YWx1ZToge2JhcjogWzAsIDIsIDRdLCBzcGFjZTogWzEsIDMsIDVdfX1cbn07XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5Db2RlMTI4UmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvZGUxMjhSZWFkZXI7XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVDb2RlID0gZnVuY3Rpb24oc3RhcnQsIGNvcnJlY3Rpb24pIHtcbiAgICB2YXIgY291bnRlciA9IFswLCAwLCAwLCAwLCAwLCAwXSxcbiAgICAgICAgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIG9mZnNldCA9IHN0YXJ0LFxuICAgICAgICBpc1doaXRlID0gIXNlbGYuX3Jvd1tvZmZzZXRdLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogc3RhcnQsXG4gICAgICAgICAgICBjb3JyZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgYmFyOiAxLFxuICAgICAgICAgICAgICAgIHNwYWNlOiAxXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvZGUsXG4gICAgICAgIGVycm9yO1xuXG4gICAgZm9yICggaSA9IG9mZnNldDsgaSA8IHNlbGYuX3Jvdy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc2VsZi5fcm93W2ldIF4gaXNXaGl0ZSkge1xuICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJQb3MgPT09IGNvdW50ZXIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGlmIChjb3JyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvcnJlY3QoY291bnRlciwgY29ycmVjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29kZSA9IDA7IGNvZGUgPCBzZWxmLkNPREVfUEFUVEVSTi5sZW5ndGg7IGNvZGUrKykge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVuZCA9IGk7XG4gICAgICAgICAgICAgICAgaWYgKGJlc3RNYXRjaC5jb2RlID09PSAtMSB8fCBiZXN0TWF0Y2guZXJyb3IgPiBzZWxmLkFWR19DT0RFX0VSUk9SKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5DT0RFX1BBVFRFUk5bYmVzdE1hdGNoLmNvZGVdKSB7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLmJhciA9IGNhbGN1bGF0ZUNvcnJlY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNPREVfUEFUVEVSTltiZXN0TWF0Y2guY29kZV0sIGNvdW50ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLk1PRFVMRV9JTkRJQ0VTLmJhcik7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLnNwYWNlID0gY2FsY3VsYXRlQ29ycmVjdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuQ09ERV9QQVRURVJOW2Jlc3RNYXRjaC5jb2RlXSwgY291bnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTU9EVUxFX0lORElDRVMuc3BhY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlLl9jb3JyZWN0ID0gZnVuY3Rpb24oY291bnRlciwgY29ycmVjdGlvbikge1xuICAgIHRoaXMuX2NvcnJlY3RCYXJzKGNvdW50ZXIsIGNvcnJlY3Rpb24uYmFyLCB0aGlzLk1PRFVMRV9JTkRJQ0VTLmJhcik7XG4gICAgdGhpcy5fY29ycmVjdEJhcnMoY291bnRlciwgY29ycmVjdGlvbi5zcGFjZSwgdGhpcy5NT0RVTEVfSU5ESUNFUy5zcGFjZSk7XG59O1xuXG5Db2RlMTI4UmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGNvdW50ZXIgPSBbMCwgMCwgMCwgMCwgMCwgMF0sXG4gICAgICAgIGksXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIGlzV2hpdGUgPSBmYWxzZSxcbiAgICAgICAgY291bnRlclBvcyA9IDAsXG4gICAgICAgIGJlc3RNYXRjaCA9IHtcbiAgICAgICAgICAgIGVycm9yOiBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICAgICAgY29kZTogLTEsXG4gICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgIGVuZDogMCxcbiAgICAgICAgICAgIGNvcnJlY3Rpb246IHtcbiAgICAgICAgICAgICAgICBiYXI6IDEsXG4gICAgICAgICAgICAgICAgc3BhY2U6IDFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29kZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGosXG4gICAgICAgIHN1bTtcblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgY291bnRlci5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnRlcltqXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb2RlID0gc2VsZi5TVEFSVF9DT0RFX0E7IGNvZGUgPD0gc2VsZi5TVEFSVF9DT0RFX0M7IGNvZGUrKykge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGJlc3RNYXRjaC5lcnJvciA8IHNlbGYuQVZHX0NPREVfRVJST1IpIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLnN0YXJ0ID0gaSAtIHN1bTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVuZCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLmJhciA9IGNhbGN1bGF0ZUNvcnJlY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNPREVfUEFUVEVSTltiZXN0TWF0Y2guY29kZV0sIGNvdW50ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLk1PRFVMRV9JTkRJQ0VTLmJhcik7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLnNwYWNlID0gY2FsY3VsYXRlQ29ycmVjdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuQ09ERV9QQVRURVJOW2Jlc3RNYXRjaC5jb2RlXSwgY291bnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTU9EVUxFX0lORElDRVMuc3BhY2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbal0gPSBjb3VudGVyW2ogKyAyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291bnRlcls0XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlcls1XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHN0YXJ0SW5mbyA9IHNlbGYuX2ZpbmRTdGFydCgpLFxuICAgICAgICBjb2RlID0gbnVsbCxcbiAgICAgICAgZG9uZSA9IGZhbHNlLFxuICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgbXVsdGlwbGllciA9IDAsXG4gICAgICAgIGNoZWNrc3VtID0gMCxcbiAgICAgICAgY29kZXNldCxcbiAgICAgICAgcmF3UmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICBzaGlmdE5leHQgPSBmYWxzZSxcbiAgICAgICAgdW5zaGlmdCxcbiAgICAgICAgcmVtb3ZlTGFzdENoYXJhY3RlciA9IHRydWU7XG5cbiAgICBpZiAoc3RhcnRJbmZvID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb2RlID0ge1xuICAgICAgICBjb2RlOiBzdGFydEluZm8uY29kZSxcbiAgICAgICAgc3RhcnQ6IHN0YXJ0SW5mby5zdGFydCxcbiAgICAgICAgZW5kOiBzdGFydEluZm8uZW5kLFxuICAgICAgICBjb3JyZWN0aW9uOiB7XG4gICAgICAgICAgICBiYXI6IHN0YXJ0SW5mby5jb3JyZWN0aW9uLmJhcixcbiAgICAgICAgICAgIHNwYWNlOiBzdGFydEluZm8uY29ycmVjdGlvbi5zcGFjZVxuICAgICAgICB9XG4gICAgfTtcbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcbiAgICBjaGVja3N1bSA9IGNvZGUuY29kZTtcbiAgICBzd2l0Y2ggKGNvZGUuY29kZSkge1xuICAgIGNhc2Ugc2VsZi5TVEFSVF9DT0RFX0E6XG4gICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQTtcbiAgICAgICAgYnJlYWs7XG4gICAgY2FzZSBzZWxmLlNUQVJUX0NPREVfQjpcbiAgICAgICAgY29kZXNldCA9IHNlbGYuQ09ERV9CO1xuICAgICAgICBicmVhaztcbiAgICBjYXNlIHNlbGYuU1RBUlRfQ09ERV9DOlxuICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0M7XG4gICAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHdoaWxlICghZG9uZSkge1xuICAgICAgICB1bnNoaWZ0ID0gc2hpZnROZXh0O1xuICAgICAgICBzaGlmdE5leHQgPSBmYWxzZTtcbiAgICAgICAgY29kZSA9IHNlbGYuX2RlY29kZUNvZGUoY29kZS5lbmQsIGNvZGUuY29ycmVjdGlvbik7XG4gICAgICAgIGlmIChjb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoY29kZS5jb2RlICE9PSBzZWxmLlNUT1BfQ09ERSkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUxhc3RDaGFyYWN0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29kZS5jb2RlICE9PSBzZWxmLlNUT1BfQ09ERSkge1xuICAgICAgICAgICAgICAgIHJhd1Jlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGllcisrO1xuICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9IG11bHRpcGxpZXIgKiBjb2RlLmNvZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgICAgICAgICAgc3dpdGNoIChjb2Rlc2V0KSB7XG4gICAgICAgICAgICBjYXNlIHNlbGYuQ09ERV9BOlxuICAgICAgICAgICAgICAgIGlmIChjb2RlLmNvZGUgPCA2NCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDMyICsgY29kZS5jb2RlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RlLmNvZGUgPCA5Nikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUuY29kZSAtIDY0KSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUuY29kZSAhPT0gc2VsZi5TVE9QX0NPREUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUxhc3RDaGFyYWN0ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvZGUuY29kZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuQ09ERV9TSElGVDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0TmV4dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0I7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuQ09ERV9DOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZXNldCA9IHNlbGYuQ09ERV9DO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2Ugc2VsZi5TVE9QX0NPREU6XG4gICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQjpcbiAgICAgICAgICAgICAgICBpZiAoY29kZS5jb2RlIDwgOTYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgzMiArIGNvZGUuY29kZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlLmNvZGUgIT09IHNlbGYuU1RPUF9DT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVMYXN0Q2hhcmFjdGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb2RlLmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfU0hJRlQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlmdE5leHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZXNldCA9IHNlbGYuQ09ERV9BO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2Ugc2VsZi5DT0RFX0E6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0E7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuU1RPUF9DT0RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2Ugc2VsZi5DT0RFX0M6XG4gICAgICAgICAgICAgICAgaWYgKGNvZGUuY29kZSA8IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjb2RlLmNvZGUgPCAxMCA/IFwiMFwiICsgY29kZS5jb2RlIDogY29kZS5jb2RlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29kZS5jb2RlICE9PSBzZWxmLlNUT1BfQ09ERSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTGFzdENoYXJhY3RlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29kZS5jb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2Ugc2VsZi5DT0RFX0E6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0E7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuU1RPUF9DT0RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1bnNoaWZ0KSB7XG4gICAgICAgICAgICBjb2Rlc2V0ID0gY29kZXNldCA9PT0gc2VsZi5DT0RFX0EgPyBzZWxmLkNPREVfQiA6IHNlbGYuQ09ERV9BO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29kZS5lbmQgPSBzZWxmLl9uZXh0VW5zZXQoc2VsZi5fcm93LCBjb2RlLmVuZCk7XG4gICAgaWYgKCFzZWxmLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UoY29kZSkpe1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjaGVja3N1bSAtPSBtdWx0aXBsaWVyICogcmF3UmVzdWx0W3Jhd1Jlc3VsdC5sZW5ndGggLSAxXTtcbiAgICBpZiAoY2hlY2tzdW0gJSAxMDMgIT09IHJhd1Jlc3VsdFtyYXdSZXN1bHQubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHJlbW92ZSBsYXN0IGNvZGUgZnJvbSByZXN1bHQgKGNoZWNrc3VtKVxuICAgIGlmIChyZW1vdmVMYXN0Q2hhcmFjdGVyKSB7XG4gICAgICAgIHJlc3VsdC5zcGxpY2UocmVzdWx0Lmxlbmd0aCAtIDEsIDEpO1xuICAgIH1cblxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydEluZm8uc3RhcnQsXG4gICAgICAgIGVuZDogY29kZS5lbmQsXG4gICAgICAgIGNvZGVzZXQ6IGNvZGVzZXQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnRJbmZvLFxuICAgICAgICBkZWNvZGVkQ29kZXM6IGRlY29kZWRDb2RlcyxcbiAgICAgICAgZW5kSW5mbzogY29kZVxuICAgIH07XG59O1xuXG5cbkJhcmNvZGVSZWFkZXIucHJvdG90eXBlLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UgPSBmdW5jdGlvbihlbmRJbmZvKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQ7XG5cbiAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQgPSBlbmRJbmZvLmVuZCArICgoZW5kSW5mby5lbmQgLSBlbmRJbmZvLnN0YXJ0KSAvIDIpO1xuICAgIGlmICh0cmFpbGluZ1doaXRlc3BhY2VFbmQgPCBzZWxmLl9yb3cubGVuZ3RoKSB7XG4gICAgICAgIGlmIChzZWxmLl9tYXRjaFJhbmdlKGVuZEluZm8uZW5kLCB0cmFpbGluZ1doaXRlc3BhY2VFbmQsIDApKSB7XG4gICAgICAgICAgICByZXR1cm4gZW5kSW5mbztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNvcnJlY3Rpb24oZXhwZWN0ZWQsIG5vcm1hbGl6ZWQsIGluZGljZXMpIHtcbiAgICB2YXIgbGVuZ3RoID0gaW5kaWNlcy5sZW5ndGgsXG4gICAgICAgIHN1bU5vcm1hbGl6ZWQgPSAwLFxuICAgICAgICBzdW1FeHBlY3RlZCA9IDA7XG5cbiAgICB3aGlsZShsZW5ndGgtLSkge1xuICAgICAgICBzdW1FeHBlY3RlZCArPSBleHBlY3RlZFtpbmRpY2VzW2xlbmd0aF1dO1xuICAgICAgICBzdW1Ob3JtYWxpemVkICs9IG5vcm1hbGl6ZWRbaW5kaWNlc1tsZW5ndGhdXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bUV4cGVjdGVkL3N1bU5vcm1hbGl6ZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvZGUxMjhSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2NvZGVfMTI4X3JlYWRlci5qcyIsImltcG9ydCBDb2RlMzlSZWFkZXIgZnJvbSAnLi9jb2RlXzM5X3JlYWRlcic7XG5cbmZ1bmN0aW9uIENvZGUzOVZJTlJlYWRlcigpIHtcbiAgICBDb2RlMzlSZWFkZXIuY2FsbCh0aGlzKTtcbn1cblxudmFyIHBhdHRlcm5zID0ge1xuICAgIElPUTogL1tJT1FdL2csXG4gICAgQVowOTogL1tBLVowLTldezE3fS9cbn07XG5cbkNvZGUzOVZJTlJlYWRlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKENvZGUzOVJlYWRlci5wcm90b3R5cGUpO1xuQ29kZTM5VklOUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvZGUzOVZJTlJlYWRlcjtcblxuLy8gQ3JpYmJlZCBmcm9tOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3p4aW5nL3p4aW5nL2Jsb2IvbWFzdGVyL2NvcmUvc3JjL21haW4vamF2YS9jb20vZ29vZ2xlL3p4aW5nL2NsaWVudC9yZXN1bHQvVklOUmVzdWx0UGFyc2VyLmphdmFcbkNvZGUzOVZJTlJlYWRlci5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciByZXN1bHQgPSBDb2RlMzlSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUuYXBwbHkodGhpcyk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIGNvZGUgPSByZXN1bHQuY29kZTtcblxuICAgIGlmICghY29kZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb2RlID0gY29kZS5yZXBsYWNlKHBhdHRlcm5zLklPUSwgJycpO1xuXG4gICAgaWYgKCFjb2RlLm1hdGNoKHBhdHRlcm5zLkFaMDkpKSB7XG4gICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGYWlsZWQgQVowOSBwYXR0ZXJuIGNvZGU6JywgY29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9jaGVja0NoZWNrc3VtKGNvZGUpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJlc3VsdC5jb2RlID0gY29kZTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuQ29kZTM5VklOUmVhZGVyLnByb3RvdHlwZS5fY2hlY2tDaGVja3N1bSA9IGZ1bmN0aW9uKGNvZGUpIHtcbiAgICAvLyBUT0RPXG4gICAgcmV0dXJuICEhY29kZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGUzOVZJTlJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvY29kZV8zOV92aW5fcmVhZGVyLmpzIiwiaW1wb3J0IEJhcmNvZGVSZWFkZXIgZnJvbSAnLi9iYXJjb2RlX3JlYWRlcic7XG5pbXBvcnQgQXJyYXlIZWxwZXIgZnJvbSAnLi4vY29tbW9uL2FycmF5X2hlbHBlcic7XG5cbmZ1bmN0aW9uIENvZGU5M1JlYWRlcigpIHtcbiAgICBCYXJjb2RlUmVhZGVyLmNhbGwodGhpcyk7XG59XG5cbmNvbnN0IEFMUEhBQkVUSF9TVFJJTkcgPSBcIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi0uICQvKyVhYmNkKlwiO1xuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBBTFBIQUJFVEhfU1RSSU5HOiB7dmFsdWU6IEFMUEhBQkVUSF9TVFJJTkd9LFxuICAgIEFMUEhBQkVUOiB7dmFsdWU6IEFMUEhBQkVUSF9TVFJJTkcuc3BsaXQoJycpLm1hcChjaGFyID0+IGNoYXIuY2hhckNvZGVBdCgwKSl9LFxuICAgIENIQVJBQ1RFUl9FTkNPRElOR1M6IHt2YWx1ZTogW1xuICAgICAgICAweDExNCwgMHgxNDgsIDB4MTQ0LCAweDE0MiwgMHgxMjgsIDB4MTI0LCAweDEyMiwgMHgxNTAsIDB4MTEyLCAweDEwQSxcbiAgICAgICAgMHgxQTgsIDB4MUE0LCAweDFBMiwgMHgxOTQsIDB4MTkyLCAweDE4QSwgMHgxNjgsIDB4MTY0LCAweDE2MiwgMHgxMzQsXG4gICAgICAgIDB4MTFBLCAweDE1OCwgMHgxNEMsIDB4MTQ2LCAweDEyQywgMHgxMTYsIDB4MUI0LCAweDFCMiwgMHgxQUMsIDB4MUE2LFxuICAgICAgICAweDE5NiwgMHgxOUEsIDB4MTZDLCAweDE2NiwgMHgxMzYsIDB4MTNBLCAweDEyRSwgMHgxRDQsIDB4MUQyLCAweDFDQSxcbiAgICAgICAgMHgxNkUsIDB4MTc2LCAweDFBRSwgMHgxMjYsIDB4MURBLCAweDFENiwgMHgxMzIsIDB4MTVFXG4gICAgXX0sXG4gICAgQVNURVJJU0s6IHt2YWx1ZTogMHgxNUV9LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcImNvZGVfOTNcIiwgd3JpdGVhYmxlOiBmYWxzZX1cbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEJhcmNvZGVSZWFkZXIucHJvdG90eXBlLCBwcm9wZXJ0aWVzKTtcbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBDb2RlOTNSZWFkZXI7XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgY291bnRlcnMgPSBbMCwgMCwgMCwgMCwgMCwgMF0sXG4gICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICBzdGFydCA9IHNlbGYuX2ZpbmRTdGFydCgpLFxuICAgICAgICBkZWNvZGVkQ2hhcixcbiAgICAgICAgbGFzdFN0YXJ0LFxuICAgICAgICBwYXR0ZXJuLFxuICAgICAgICBuZXh0U3RhcnQ7XG5cbiAgICBpZiAoIXN0YXJ0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBuZXh0U3RhcnQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3Jvdywgc3RhcnQuZW5kKTtcblxuICAgIGRvIHtcbiAgICAgICAgY291bnRlcnMgPSBzZWxmLl90b0NvdW50ZXJzKG5leHRTdGFydCwgY291bnRlcnMpO1xuICAgICAgICBwYXR0ZXJuID0gc2VsZi5fdG9QYXR0ZXJuKGNvdW50ZXJzKTtcbiAgICAgICAgaWYgKHBhdHRlcm4gPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBkZWNvZGVkQ2hhciA9IHNlbGYuX3BhdHRlcm5Ub0NoYXIocGF0dGVybik7XG4gICAgICAgIGlmIChkZWNvZGVkQ2hhciA8IDApe1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0LnB1c2goZGVjb2RlZENoYXIpO1xuICAgICAgICBsYXN0U3RhcnQgPSBuZXh0U3RhcnQ7XG4gICAgICAgIG5leHRTdGFydCArPSBBcnJheUhlbHBlci5zdW0oY291bnRlcnMpO1xuICAgICAgICBuZXh0U3RhcnQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdywgbmV4dFN0YXJ0KTtcbiAgICB9IHdoaWxlIChkZWNvZGVkQ2hhciAhPT0gJyonKTtcbiAgICByZXN1bHQucG9wKCk7XG5cbiAgICBpZiAoIXJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCFzZWxmLl92ZXJpZnlFbmQobGFzdFN0YXJ0LCBuZXh0U3RhcnQsIGNvdW50ZXJzKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXNlbGYuX3ZlcmlmeUNoZWNrc3VtcyhyZXN1bHQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCByZXN1bHQubGVuZ3RoIC0gMik7XG4gICAgaWYgKChyZXN1bHQgPSBzZWxmLl9kZWNvZGVFeHRlbmRlZChyZXN1bHQpKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydC5zdGFydCxcbiAgICAgICAgZW5kOiBuZXh0U3RhcnQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnQsXG4gICAgICAgIGRlY29kZWRDb2RlczogcmVzdWx0XG4gICAgfTtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX3ZlcmlmeUVuZCA9IGZ1bmN0aW9uKGxhc3RTdGFydCwgbmV4dFN0YXJ0KSB7XG4gICAgaWYgKGxhc3RTdGFydCA9PT0gbmV4dFN0YXJ0IHx8ICF0aGlzLl9yb3dbbmV4dFN0YXJ0XSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuQ29kZTkzUmVhZGVyLnByb3RvdHlwZS5fcGF0dGVyblRvQ2hhciA9IGZ1bmN0aW9uKHBhdHRlcm4pIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXM7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLkNIQVJBQ1RFUl9FTkNPRElOR1NbaV0gPT09IHBhdHRlcm4pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHNlbGYuQUxQSEFCRVRbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX3RvUGF0dGVybiA9IGZ1bmN0aW9uKGNvdW50ZXJzKSB7XG4gICAgY29uc3QgbnVtQ291bnRlcnMgPSBjb3VudGVycy5sZW5ndGg7XG4gICAgbGV0IHBhdHRlcm4gPSAwO1xuICAgIGxldCBzdW0gPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtQ291bnRlcnM7IGkrKykge1xuICAgICAgICBzdW0gKz0gY291bnRlcnNbaV07XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1Db3VudGVyczsgaSsrKSB7XG4gICAgICAgIGxldCBub3JtYWxpemVkID0gTWF0aC5yb3VuZChjb3VudGVyc1tpXSAqIDkgLyBzdW0pO1xuICAgICAgICBpZiAobm9ybWFsaXplZCA8IDEgfHwgbm9ybWFsaXplZCA+IDQpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGkgJiAxKSA9PT0gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBub3JtYWxpemVkOyBqKyspIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuID0gKHBhdHRlcm4gPDwgMSkgfCAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0dGVybiA8PD0gbm9ybWFsaXplZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXR0ZXJuO1xufTtcblxuQ29kZTkzUmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIHBhdHRlcm5TdGFydCA9IG9mZnNldCxcbiAgICAgICAgY291bnRlciA9IFswLCAwLCAwLCAwLCAwLCAwXSxcbiAgICAgICAgY291bnRlclBvcyA9IDAsXG4gICAgICAgIGlzV2hpdGUgPSBmYWxzZSxcbiAgICAgICAgaSxcbiAgICAgICAgaixcbiAgICAgICAgd2hpdGVTcGFjZU11c3RTdGFydDtcblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAvLyBmaW5kIHN0YXJ0IHBhdHRlcm5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5fdG9QYXR0ZXJuKGNvdW50ZXIpID09PSBzZWxmLkFTVEVSSVNLKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2VNdXN0U3RhcnQgPSBNYXRoLmZsb29yKE1hdGgubWF4KDAsIHBhdHRlcm5TdGFydCAtICgoaSAtIHBhdHRlcm5TdGFydCkgLyA0KSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5fbWF0Y2hSYW5nZSh3aGl0ZVNwYWNlTXVzdFN0YXJ0LCBwYXR0ZXJuU3RhcnQsIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBwYXR0ZXJuU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBpXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGF0dGVyblN0YXJ0ICs9IGNvdW50ZXJbMF0gKyBjb3VudGVyWzFdO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbal0gPSBjb3VudGVyW2ogKyAyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291bnRlcls0XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlcls1XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX2RlY29kZUV4dGVuZGVkID0gZnVuY3Rpb24oY2hhckFycmF5KSB7XG4gICAgY29uc3QgbGVuZ3RoID0gY2hhckFycmF5Lmxlbmd0aDtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNoYXIgPSBjaGFyQXJyYXlbaV07XG4gICAgICAgIGlmIChjaGFyID49ICdhJyAmJiBjaGFyIDw9ICdkJykge1xuICAgICAgICAgICAgaWYgKGkgPiAobGVuZ3RoIC0gMikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5leHRDaGFyID0gY2hhckFycmF5WysraV07XG4gICAgICAgICAgICBjb25zdCBuZXh0Q2hhckNvZGUgPSBuZXh0Q2hhci5jaGFyQ29kZUF0KDApO1xuICAgICAgICAgICAgbGV0IGRlY29kZWRDaGFyO1xuICAgICAgICAgICAgc3dpdGNoIChjaGFyKSB7XG4gICAgICAgICAgICBjYXNlICdhJzpcbiAgICAgICAgICAgICAgICBpZiAobmV4dENoYXIgPj0gJ0EnICYmIG5leHRDaGFyIDw9ICdaJykge1xuICAgICAgICAgICAgICAgICAgICBkZWNvZGVkQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dENoYXJDb2RlIC0gNjQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhciA+PSAnQScgJiYgbmV4dENoYXIgPD0gJ0UnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgLSAzOCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnRicgJiYgbmV4dENoYXIgPD0gJ0onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgLSAxMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnSycgJiYgbmV4dENoYXIgPD0gJ08nKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgKyAxNik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnUCcgJiYgbmV4dENoYXIgPD0gJ1MnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgKyA0Myk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnVCcgJiYgbmV4dENoYXIgPD0gJ1onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgxMjcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2MnOlxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhciA+PSAnQScgJiYgbmV4dENoYXIgPD0gJ08nKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgLSAzMik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gJ1onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gJzonO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhciA+PSAnQScgJiYgbmV4dENoYXIgPD0gJ1onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgKyAzMik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2goZGVjb2RlZENoYXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goY2hhcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX3ZlcmlmeUNoZWNrc3VtcyA9IGZ1bmN0aW9uKGNoYXJBcnJheSkge1xuICAgIHJldHVybiB0aGlzLl9tYXRjaENoZWNrQ2hhcihjaGFyQXJyYXksIGNoYXJBcnJheS5sZW5ndGggLSAyLCAyMClcbiAgICAgICAgJiYgdGhpcy5fbWF0Y2hDaGVja0NoYXIoY2hhckFycmF5LCBjaGFyQXJyYXkubGVuZ3RoIC0gMSwgMTUpO1xufTtcblxuQ29kZTkzUmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hDaGVja0NoYXIgPSBmdW5jdGlvbihjaGFyQXJyYXksIGluZGV4LCBtYXhXZWlnaHQpIHtcbiAgICBjb25zdCBhcnJheVRvQ2hlY2sgPSBjaGFyQXJyYXkuc2xpY2UoMCwgaW5kZXgpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5VG9DaGVjay5sZW5ndGg7XG4gICAgY29uc3Qgd2VpZ2h0ZWRTdW1zID0gYXJyYXlUb0NoZWNrLnJlZHVjZSgoc3VtLCBjaGFyLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHdlaWdodCA9ICgoKGkgKiAtMSkgKyAobGVuZ3RoIC0gMSkpICUgbWF4V2VpZ2h0KSArIDE7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5BTFBIQUJFVC5pbmRleE9mKGNoYXIuY2hhckNvZGVBdCgwKSk7XG4gICAgICAgIHJldHVybiBzdW0gKyAod2VpZ2h0ICogdmFsdWUpO1xuICAgIH0sIDApO1xuXG4gICAgY29uc3QgY2hlY2tDaGFyID0gdGhpcy5BTFBIQUJFVFsod2VpZ2h0ZWRTdW1zICUgNDcpXTtcbiAgICByZXR1cm4gY2hlY2tDaGFyID09PSBjaGFyQXJyYXlbaW5kZXhdLmNoYXJDb2RlQXQoMCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb2RlOTNSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2NvZGVfOTNfcmVhZGVyLmpzIiwiaW1wb3J0IEVBTlJlYWRlciBmcm9tICcuL2Vhbl9yZWFkZXInO1xuXG5mdW5jdGlvbiBFQU4yUmVhZGVyKCkge1xuICAgIEVBTlJlYWRlci5jYWxsKHRoaXMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBGT1JNQVQ6IHt2YWx1ZTogXCJlYW5fMlwiLCB3cml0ZWFibGU6IGZhbHNlfVxufTtcblxuRUFOMlJlYWRlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVBTlJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuRUFOMlJlYWRlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBFQU4yUmVhZGVyO1xuXG5FQU4yUmVhZGVyLnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbihyb3csIHN0YXJ0KSB7XG4gICAgdGhpcy5fcm93ID0gcm93O1xuICAgIHZhciBjb3VudGVycyA9IFswLCAwLCAwLCAwXSxcbiAgICAgICAgY29kZUZyZXF1ZW5jeSA9IDAsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICBvZmZzZXQgPSBzdGFydCxcbiAgICAgICAgZW5kID0gdGhpcy5fcm93Lmxlbmd0aCxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IDIgJiYgb2Zmc2V0IDwgZW5kOyBpKyspIHtcbiAgICAgICAgY29kZSA9IHRoaXMuX2RlY29kZUNvZGUob2Zmc2V0KTtcbiAgICAgICAgaWYgKCFjb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcbiAgICAgICAgcmVzdWx0LnB1c2goY29kZS5jb2RlICUgMTApO1xuICAgICAgICBpZiAoY29kZS5jb2RlID49IHRoaXMuQ09ERV9HX1NUQVJUKSB7XG4gICAgICAgICAgICBjb2RlRnJlcXVlbmN5IHw9IDEgPDwgKDEgLSBpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaSAhPSAxKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLl9uZXh0U2V0KHRoaXMuX3JvdywgY29kZS5lbmQpO1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5fbmV4dFVuc2V0KHRoaXMuX3Jvdywgb2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IDIgfHwgKHBhcnNlSW50KHJlc3VsdC5qb2luKFwiXCIpKSAlIDQpICAhPT0gY29kZUZyZXF1ZW5jeSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIGRlY29kZWRDb2RlcyxcbiAgICAgICAgZW5kOiBjb2RlLmVuZFxuICAgIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFQU4yUmVhZGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3JlYWRlci9lYW5fMl9yZWFkZXIuanMiLCJpbXBvcnQgRUFOUmVhZGVyIGZyb20gJy4vZWFuX3JlYWRlcic7XG5cbmZ1bmN0aW9uIEVBTjVSZWFkZXIoKSB7XG4gICAgRUFOUmVhZGVyLmNhbGwodGhpcyk7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEZPUk1BVDoge3ZhbHVlOiBcImVhbl81XCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5jb25zdCBDSEVDS19ESUdJVF9FTkNPRElOR1MgPSBbMjQsIDIwLCAxOCwgMTcsIDEyLCA2LCAzLCAxMCwgOSwgNV07XG5cbkVBTjVSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFQU5SZWFkZXIucHJvdG90eXBlLCBwcm9wZXJ0aWVzKTtcbkVBTjVSZWFkZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRUFONVJlYWRlcjtcblxuRUFONVJlYWRlci5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24ocm93LCBzdGFydCkge1xuICAgIHRoaXMuX3JvdyA9IHJvdztcbiAgICB2YXIgY291bnRlcnMgPSBbMCwgMCwgMCwgMF0sXG4gICAgICAgIGNvZGVGcmVxdWVuY3kgPSAwLFxuICAgICAgICBpID0gMCxcbiAgICAgICAgb2Zmc2V0ID0gc3RhcnQsXG4gICAgICAgIGVuZCA9IHRoaXMuX3Jvdy5sZW5ndGgsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICBkZWNvZGVkQ29kZXMgPSBbXTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCA1ICYmIG9mZnNldCA8IGVuZDsgaSsrKSB7XG4gICAgICAgIGNvZGUgPSB0aGlzLl9kZWNvZGVDb2RlKG9mZnNldCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSAlIDEwKTtcbiAgICAgICAgaWYgKGNvZGUuY29kZSA+PSB0aGlzLkNPREVfR19TVEFSVCkge1xuICAgICAgICAgICAgY29kZUZyZXF1ZW5jeSB8PSAxIDw8ICg0IC0gaSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgIT0gNCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5fbmV4dFNldCh0aGlzLl9yb3csIGNvZGUuZW5kKTtcbiAgICAgICAgICAgIG9mZnNldCA9IHRoaXMuX25leHRVbnNldCh0aGlzLl9yb3csIG9mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSA1KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChleHRlbnNpb25DaGVja3N1bShyZXN1bHQpICE9PSBkZXRlcm1pbmVDaGVja0RpZ2l0KGNvZGVGcmVxdWVuY3kpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiByZXN1bHQuam9pbihcIlwiKSxcbiAgICAgICAgZGVjb2RlZENvZGVzLFxuICAgICAgICBlbmQ6IGNvZGUuZW5kXG4gICAgfTtcbn07XG5cbmZ1bmN0aW9uIGRldGVybWluZUNoZWNrRGlnaXQoY29kZUZyZXF1ZW5jeSkge1xuICAgIHZhciBpO1xuICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgICAgIGlmIChjb2RlRnJlcXVlbmN5ID09PSBDSEVDS19ESUdJVF9FTkNPRElOR1NbaV0pIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5cbmZ1bmN0aW9uIGV4dGVuc2lvbkNoZWNrc3VtKHJlc3VsdCkge1xuICAgIHZhciBsZW5ndGggPSByZXN1bHQubGVuZ3RoLFxuICAgICAgICBzdW0gPSAwLFxuICAgICAgICBpO1xuXG4gICAgZm9yIChpID0gbGVuZ3RoIC0gMjsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICAgICAgc3VtICs9IHJlc3VsdFtpXTtcbiAgICB9XG4gICAgc3VtICo9IDM7XG4gICAgZm9yIChpID0gbGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICAgICAgc3VtICs9IHJlc3VsdFtpXTtcbiAgICB9XG4gICAgc3VtICo9IDM7XG4gICAgcmV0dXJuIHN1bSAlIDEwO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFQU41UmVhZGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3JlYWRlci9lYW5fNV9yZWFkZXIuanMiLCJpbXBvcnQgRUFOUmVhZGVyIGZyb20gJy4vZWFuX3JlYWRlcic7XG5cbmZ1bmN0aW9uIEVBTjhSZWFkZXIob3B0cywgc3VwcGxlbWVudHMpIHtcbiAgICBFQU5SZWFkZXIuY2FsbCh0aGlzLCBvcHRzLCBzdXBwbGVtZW50cyk7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEZPUk1BVDoge3ZhbHVlOiBcImVhbl84XCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5FQU44UmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRUFOUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5FQU44UmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEVBTjhSZWFkZXI7XG5cbkVBTjhSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXM7XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb2RlLmVuZCwgc2VsZi5DT0RFX0dfU1RBUlQpO1xuICAgICAgICBpZiAoIWNvZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgICAgIGRlY29kZWRDb2Rlcy5wdXNoKGNvZGUpO1xuICAgIH1cblxuICAgIGNvZGUgPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLk1JRERMRV9QQVRURVJOLCBjb2RlLmVuZCwgdHJ1ZSwgZmFsc2UpO1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVDb2RlKGNvZGUuZW5kLCBzZWxmLkNPREVfR19TVEFSVCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvZGU7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFQU44UmVhZGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3JlYWRlci9lYW5fOF9yZWFkZXIuanMiLCJpbXBvcnQgQmFyY29kZVJlYWRlciBmcm9tICcuL2JhcmNvZGVfcmVhZGVyJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJ2xvZGFzaCc7XG5cbmZ1bmN0aW9uIEkyb2Y1UmVhZGVyKG9wdHMpIHtcbiAgICBvcHRzID0gbWVyZ2UoZ2V0RGVmYXVsQ29uZmlnKCksIG9wdHMpO1xuICAgIEJhcmNvZGVSZWFkZXIuY2FsbCh0aGlzLCBvcHRzKTtcbiAgICB0aGlzLmJhclNwYWNlUmF0aW8gPSBbMSwgMV07XG4gICAgaWYgKG9wdHMubm9ybWFsaXplQmFyU3BhY2VXaWR0aCkge1xuICAgICAgICB0aGlzLlNJTkdMRV9DT0RFX0VSUk9SID0gMC4zODtcbiAgICAgICAgdGhpcy5BVkdfQ09ERV9FUlJPUiA9IDAuMDk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWZhdWxDb25maWcoKSB7XG4gICAgdmFyIGNvbmZpZyA9IHt9O1xuXG4gICAgT2JqZWN0LmtleXMoSTJvZjVSZWFkZXIuQ09ORklHX0tFWVMpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIGNvbmZpZ1trZXldID0gSTJvZjVSZWFkZXIuQ09ORklHX0tFWVNba2V5XS5kZWZhdWx0O1xuICAgIH0pO1xuICAgIHJldHVybiBjb25maWc7XG59XG5cbnZhciBOID0gMSxcbiAgICBXID0gMyxcbiAgICBwcm9wZXJ0aWVzID0ge1xuICAgICAgICBTVEFSVF9QQVRURVJOOiB7dmFsdWU6IFtOLCBOLCBOLCBOXX0sXG4gICAgICAgIFNUT1BfUEFUVEVSTjoge3ZhbHVlOiBbTiwgTiwgV119LFxuICAgICAgICBDT0RFX1BBVFRFUk46IHt2YWx1ZTogW1xuICAgICAgICAgICAgW04sIE4sIFcsIFcsIE5dLFxuICAgICAgICAgICAgW1csIE4sIE4sIE4sIFddLFxuICAgICAgICAgICAgW04sIFcsIE4sIE4sIFddLFxuICAgICAgICAgICAgW1csIFcsIE4sIE4sIE5dLFxuICAgICAgICAgICAgW04sIE4sIFcsIE4sIFddLFxuICAgICAgICAgICAgW1csIE4sIFcsIE4sIE5dLFxuICAgICAgICAgICAgW04sIFcsIFcsIE4sIE5dLFxuICAgICAgICAgICAgW04sIE4sIE4sIFcsIFddLFxuICAgICAgICAgICAgW1csIE4sIE4sIFcsIE5dLFxuICAgICAgICAgICAgW04sIFcsIE4sIFcsIE5dXG4gICAgICAgIF19LFxuICAgICAgICBTSU5HTEVfQ09ERV9FUlJPUjoge3ZhbHVlOiAwLjc4LCB3cml0YWJsZTogdHJ1ZX0sXG4gICAgICAgIEFWR19DT0RFX0VSUk9SOiB7dmFsdWU6IDAuMzgsIHdyaXRhYmxlOiB0cnVlfSxcbiAgICAgICAgTUFYX0NPUlJFQ1RJT05fRkFDVE9SOiB7dmFsdWU6IDV9LFxuICAgICAgICBGT1JNQVQ6IHt2YWx1ZTogXCJpMm9mNVwifVxuICAgIH07XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQmFyY29kZVJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuSTJvZjVSZWFkZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gSTJvZjVSZWFkZXI7XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hQYXR0ZXJuID0gZnVuY3Rpb24oY291bnRlciwgY29kZSkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5ub3JtYWxpemVCYXJTcGFjZVdpZHRoKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgY291bnRlclN1bSA9IFswLCAwXSxcbiAgICAgICAgICAgIGNvZGVTdW0gPSBbMCwgMF0sXG4gICAgICAgICAgICBjb3JyZWN0aW9uID0gWzAsIDBdLFxuICAgICAgICAgICAgY29ycmVjdGlvblJhdGlvID0gdGhpcy5NQVhfQ09SUkVDVElPTl9GQUNUT1IsXG4gICAgICAgICAgICBjb3JyZWN0aW9uUmF0aW9JbnZlcnNlID0gMSAvIGNvcnJlY3Rpb25SYXRpbztcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnRlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY291bnRlclN1bVtpICUgMl0gKz0gY291bnRlcltpXTtcbiAgICAgICAgICAgIGNvZGVTdW1baSAlIDJdICs9IGNvZGVbaV07XG4gICAgICAgIH1cbiAgICAgICAgY29ycmVjdGlvblswXSA9IGNvZGVTdW1bMF0gLyBjb3VudGVyU3VtWzBdO1xuICAgICAgICBjb3JyZWN0aW9uWzFdID0gY29kZVN1bVsxXSAvIGNvdW50ZXJTdW1bMV07XG5cbiAgICAgICAgY29ycmVjdGlvblswXSA9IE1hdGgubWF4KE1hdGgubWluKGNvcnJlY3Rpb25bMF0sIGNvcnJlY3Rpb25SYXRpbyksIGNvcnJlY3Rpb25SYXRpb0ludmVyc2UpO1xuICAgICAgICBjb3JyZWN0aW9uWzFdID0gTWF0aC5tYXgoTWF0aC5taW4oY29ycmVjdGlvblsxXSwgY29ycmVjdGlvblJhdGlvKSwgY29ycmVjdGlvblJhdGlvSW52ZXJzZSk7XG4gICAgICAgIHRoaXMuYmFyU3BhY2VSYXRpbyA9IGNvcnJlY3Rpb247XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb3VudGVyW2ldICo9IHRoaXMuYmFyU3BhY2VSYXRpb1tpICUgMl07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIEJhcmNvZGVSZWFkZXIucHJvdG90eXBlLl9tYXRjaFBhdHRlcm4uY2FsbCh0aGlzLCBjb3VudGVyLCBjb2RlKTtcbn07XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZS5fZmluZFBhdHRlcm4gPSBmdW5jdGlvbihwYXR0ZXJuLCBvZmZzZXQsIGlzV2hpdGUsIHRyeUhhcmRlcikge1xuICAgIHZhciBjb3VudGVyID0gW10sXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yLFxuICAgICAgICBqLFxuICAgICAgICBzdW0sXG4gICAgICAgIG5vcm1hbGl6ZWQsXG4gICAgICAgIGVwc2lsb24gPSBzZWxmLkFWR19DT0RFX0VSUk9SO1xuXG4gICAgaXNXaGl0ZSA9IGlzV2hpdGUgfHwgZmFsc2U7XG4gICAgdHJ5SGFyZGVyID0gdHJ5SGFyZGVyIHx8IGZhbHNlO1xuXG4gICAgaWYgKCFvZmZzZXQpIHtcbiAgICAgICAgb2Zmc2V0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3cpO1xuICAgIH1cblxuICAgIGZvciAoIGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb3VudGVyW2ldID0gMDtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gb2Zmc2V0OyBpIDwgc2VsZi5fcm93Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY291bnRlclBvcyA9PT0gY291bnRlci5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50ZXJbal07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVycm9yID0gc2VsZi5fbWF0Y2hQYXR0ZXJuKGNvdW50ZXIsIHBhdHRlcm4pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGVwc2lsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5zdGFydCA9IGkgLSBzdW07XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lbmQgPSBpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHJ5SGFyZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjb3VudGVyLmxlbmd0aCAtIDI7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlcltqXSA9IGNvdW50ZXJbaiArIDJdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAyXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAxXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MtLTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9maW5kU3RhcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQsXG4gICAgICAgIG9mZnNldCA9IHNlbGYuX25leHRTZXQoc2VsZi5fcm93KSxcbiAgICAgICAgc3RhcnRJbmZvLFxuICAgICAgICBuYXJyb3dCYXJXaWR0aCA9IDE7XG5cbiAgICB3aGlsZSAoIXN0YXJ0SW5mbykge1xuICAgICAgICBzdGFydEluZm8gPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLlNUQVJUX1BBVFRFUk4sIG9mZnNldCwgZmFsc2UsIHRydWUpO1xuICAgICAgICBpZiAoIXN0YXJ0SW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbmFycm93QmFyV2lkdGggPSBNYXRoLmZsb29yKChzdGFydEluZm8uZW5kIC0gc3RhcnRJbmZvLnN0YXJ0KSAvIDQpO1xuICAgICAgICBsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0ID0gc3RhcnRJbmZvLnN0YXJ0IC0gbmFycm93QmFyV2lkdGggKiAxMDtcbiAgICAgICAgaWYgKGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQgPj0gMCkge1xuICAgICAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UobGVhZGluZ1doaXRlc3BhY2VTdGFydCwgc3RhcnRJbmZvLnN0YXJ0LCAwKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydEluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0ID0gc3RhcnRJbmZvLmVuZDtcbiAgICAgICAgc3RhcnRJbmZvID0gbnVsbDtcbiAgICB9XG59O1xuXG5JMm9mNVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGVuZEluZm8pIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZDtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IGVuZEluZm8uZW5kICsgKChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpIC8gMik7XG4gICAgaWYgKHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA8IHNlbGYuX3Jvdy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UoZW5kSW5mby5lbmQsIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRJbmZvO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9maW5kRW5kID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBlbmRJbmZvLFxuICAgICAgICB0bXA7XG5cbiAgICBzZWxmLl9yb3cucmV2ZXJzZSgpO1xuICAgIGVuZEluZm8gPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLlNUT1BfUEFUVEVSTik7XG4gICAgc2VsZi5fcm93LnJldmVyc2UoKTtcblxuICAgIGlmIChlbmRJbmZvID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHJldmVyc2UgbnVtYmVyc1xuICAgIHRtcCA9IGVuZEluZm8uc3RhcnQ7XG4gICAgZW5kSW5mby5zdGFydCA9IHNlbGYuX3Jvdy5sZW5ndGggLSBlbmRJbmZvLmVuZDtcbiAgICBlbmRJbmZvLmVuZCA9IHNlbGYuX3Jvdy5sZW5ndGggLSB0bXA7XG5cbiAgICByZXR1cm4gZW5kSW5mbyAhPT0gbnVsbCA/IHNlbGYuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZShlbmRJbmZvKSA6IG51bGw7XG59O1xuXG5JMm9mNVJlYWRlci5wcm90b3R5cGUuX2RlY29kZVBhaXIgPSBmdW5jdGlvbihjb3VudGVyUGFpcikge1xuICAgIHZhciBpLFxuICAgICAgICBjb2RlLFxuICAgICAgICBjb2RlcyA9IFtdLFxuICAgICAgICBzZWxmID0gdGhpcztcblxuICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudGVyUGFpci5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb3VudGVyUGFpcltpXSk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29kZXMucHVzaChjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvZGVzO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVDb2RlID0gZnVuY3Rpb24oY291bnRlcikge1xuICAgIHZhciBqLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgc3VtID0gMCxcbiAgICAgICAgbm9ybWFsaXplZCxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGVwc2lsb24gPSBzZWxmLkFWR19DT0RFX0VSUk9SLFxuICAgICAgICBjb2RlLFxuICAgICAgICBiZXN0TWF0Y2ggPSB7XG4gICAgICAgICAgICBlcnJvcjogTnVtYmVyLk1BWF9WQUxVRSxcbiAgICAgICAgICAgIGNvZGU6IC0xLFxuICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICBlbmQ6IDBcbiAgICAgICAgfTtcblxuICAgIGZvciAoIGogPSAwOyBqIDwgY291bnRlci5sZW5ndGg7IGorKykge1xuICAgICAgICBzdW0gKz0gY291bnRlcltqXTtcbiAgICB9XG4gICAgZm9yIChjb2RlID0gMDsgY29kZSA8IHNlbGYuQ09ERV9QQVRURVJOLmxlbmd0aDsgY29kZSsrKSB7XG4gICAgICAgIGVycm9yID0gc2VsZi5fbWF0Y2hQYXR0ZXJuKGNvdW50ZXIsIHNlbGYuQ09ERV9QQVRURVJOW2NvZGVdKTtcbiAgICAgICAgaWYgKGVycm9yIDwgYmVzdE1hdGNoLmVycm9yKSB7XG4gICAgICAgICAgICBiZXN0TWF0Y2guY29kZSA9IGNvZGU7XG4gICAgICAgICAgICBiZXN0TWF0Y2guZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoYmVzdE1hdGNoLmVycm9yIDwgZXBzaWxvbikge1xuICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgIH1cbn07XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlUGF5bG9hZCA9IGZ1bmN0aW9uKGNvdW50ZXJzLCByZXN1bHQsIGRlY29kZWRDb2Rlcykge1xuICAgIHZhciBpLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgcG9zID0gMCxcbiAgICAgICAgY291bnRlckxlbmd0aCA9IGNvdW50ZXJzLmxlbmd0aCxcbiAgICAgICAgY291bnRlclBhaXIgPSBbWzAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMF1dLFxuICAgICAgICBjb2RlcztcblxuICAgIHdoaWxlIChwb3MgPCBjb3VudGVyTGVuZ3RoKSB7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA1OyBpKyspIHtcbiAgICAgICAgICAgIGNvdW50ZXJQYWlyWzBdW2ldID0gY291bnRlcnNbcG9zXSAqIHRoaXMuYmFyU3BhY2VSYXRpb1swXTtcbiAgICAgICAgICAgIGNvdW50ZXJQYWlyWzFdW2ldID0gY291bnRlcnNbcG9zICsgMV0gKiB0aGlzLmJhclNwYWNlUmF0aW9bMV07XG4gICAgICAgICAgICBwb3MgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBjb2RlcyA9IHNlbGYuX2RlY29kZVBhaXIoY291bnRlclBhaXIpO1xuICAgICAgICBpZiAoIWNvZGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNvZGVzW2ldLmNvZGUgKyBcIlwiKTtcbiAgICAgICAgICAgIGRlY29kZWRDb2Rlcy5wdXNoKGNvZGVzW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29kZXM7XG59O1xuXG5JMm9mNVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeUNvdW50ZXJMZW5ndGggPSBmdW5jdGlvbihjb3VudGVycykge1xuICAgIHJldHVybiAoY291bnRlcnMubGVuZ3RoICUgMTAgPT09IDApO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhcnRJbmZvLFxuICAgICAgICBlbmRJbmZvLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICBjb3VudGVycztcblxuICAgIHN0YXJ0SW5mbyA9IHNlbGYuX2ZpbmRTdGFydCgpO1xuICAgIGlmICghc3RhcnRJbmZvKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChzdGFydEluZm8pO1xuXG4gICAgZW5kSW5mbyA9IHNlbGYuX2ZpbmRFbmQoKTtcbiAgICBpZiAoIWVuZEluZm8pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY291bnRlcnMgPSBzZWxmLl9maWxsQ291bnRlcnMoc3RhcnRJbmZvLmVuZCwgZW5kSW5mby5zdGFydCwgZmFsc2UpO1xuICAgIGlmICghc2VsZi5fdmVyaWZ5Q291bnRlckxlbmd0aChjb3VudGVycykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVQYXlsb2FkKGNvdW50ZXJzLCByZXN1bHQsIGRlY29kZWRDb2Rlcyk7XG4gICAgaWYgKCFjb2RlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCAlIDIgIT09IDAgfHxcbiAgICAgICAgICAgIHJlc3VsdC5sZW5ndGggPCA2KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGRlY29kZWRDb2Rlcy5wdXNoKGVuZEluZm8pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IHJlc3VsdC5qb2luKFwiXCIpLFxuICAgICAgICBzdGFydDogc3RhcnRJbmZvLnN0YXJ0LFxuICAgICAgICBlbmQ6IGVuZEluZm8uZW5kLFxuICAgICAgICBzdGFydEluZm86IHN0YXJ0SW5mbyxcbiAgICAgICAgZGVjb2RlZENvZGVzOiBkZWNvZGVkQ29kZXNcbiAgICB9O1xufTtcblxuSTJvZjVSZWFkZXIuQ09ORklHX0tFWVMgPSB7XG4gICAgbm9ybWFsaXplQmFyU3BhY2VXaWR0aDoge1xuICAgICAgICAndHlwZSc6ICdib29sZWFuJyxcbiAgICAgICAgJ2RlZmF1bHQnOiBmYWxzZSxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ0lmIHRydWUsIHRoZSByZWFkZXIgdHJpZXMgdG8gbm9ybWFsaXplIHRoZScgK1xuICAgICAgICAnd2lkdGgtZGlmZmVyZW5jZSBiZXR3ZWVuIGJhcnMgYW5kIHNwYWNlcydcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJMm9mNVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvaTJvZjVfcmVhZGVyLmpzIiwiaW1wb3J0IEVBTlJlYWRlciBmcm9tICcuL2Vhbl9yZWFkZXInO1xuXG5mdW5jdGlvbiBVUENFUmVhZGVyKG9wdHMsIHN1cHBsZW1lbnRzKSB7XG4gICAgRUFOUmVhZGVyLmNhbGwodGhpcywgb3B0cywgc3VwcGxlbWVudHMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBDT0RFX0ZSRVFVRU5DWToge3ZhbHVlOiBbXG4gICAgICAgIFsgNTYsIDUyLCA1MCwgNDksIDQ0LCAzOCwgMzUsIDQyLCA0MSwgMzcgXSxcbiAgICAgICAgWzcsIDExLCAxMywgMTQsIDE5LCAyNSwgMjgsIDIxLCAyMiwgMjZdXX0sXG4gICAgU1RPUF9QQVRURVJOOiB7IHZhbHVlOiBbMSAvIDYgKiA3LCAxIC8gNiAqIDcsIDEgLyA2ICogNywgMSAvIDYgKiA3LCAxIC8gNiAqIDcsIDEgLyA2ICogN119LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcInVwY19lXCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5VUENFUmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRUFOUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5VUENFUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFVQQ0VSZWFkZXI7XG5cblVQQ0VSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvZGVGcmVxdWVuY3kgPSAweDA7XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IDY7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb2RlLmVuZCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvZGUuY29kZSA+PSBzZWxmLkNPREVfR19TVEFSVCkge1xuICAgICAgICAgICAgY29kZS5jb2RlID0gY29kZS5jb2RlIC0gc2VsZi5DT0RFX0dfU1RBUlQ7XG4gICAgICAgICAgICBjb2RlRnJlcXVlbmN5IHw9IDEgPDwgKDUgLSBpKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChjb2RlLmNvZGUpO1xuICAgICAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcbiAgICB9XG4gICAgaWYgKCFzZWxmLl9kZXRlcm1pbmVQYXJpdHkoY29kZUZyZXF1ZW5jeSwgcmVzdWx0KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29kZTtcbn07XG5cblVQQ0VSZWFkZXIucHJvdG90eXBlLl9kZXRlcm1pbmVQYXJpdHkgPSBmdW5jdGlvbihjb2RlRnJlcXVlbmN5LCByZXN1bHQpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbnJTeXN0ZW07XG5cbiAgICBmb3IgKG5yU3lzdGVtID0gMDsgbnJTeXN0ZW0gPCB0aGlzLkNPREVfRlJFUVVFTkNZLmxlbmd0aDsgbnJTeXN0ZW0rKyl7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgdGhpcy5DT0RFX0ZSRVFVRU5DWVtuclN5c3RlbV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChjb2RlRnJlcXVlbmN5ID09PSB0aGlzLkNPREVfRlJFUVVFTkNZW25yU3lzdGVtXVtpXSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC51bnNoaWZ0KG5yU3lzdGVtKTtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5VUENFUmVhZGVyLnByb3RvdHlwZS5fY29udmVydFRvVVBDQSA9IGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgIHZhciB1cGNhID0gW3Jlc3VsdFswXV0sXG4gICAgICAgIGxhc3REaWdpdCA9IHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMl07XG5cbiAgICBpZiAobGFzdERpZ2l0IDw9IDIpIHtcbiAgICAgICAgdXBjYSA9IHVwY2EuY29uY2F0KHJlc3VsdC5zbGljZSgxLCAzKSlcbiAgICAgICAgICAgIC5jb25jYXQoW2xhc3REaWdpdCwgMCwgMCwgMCwgMF0pXG4gICAgICAgICAgICAuY29uY2F0KHJlc3VsdC5zbGljZSgzLCA2KSk7XG4gICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDMpIHtcbiAgICAgICAgdXBjYSA9IHVwY2EuY29uY2F0KHJlc3VsdC5zbGljZSgxLCA0KSlcbiAgICAgICAgICAgIC5jb25jYXQoWzAsIDAsIDAsIDAsIDBdKVxuICAgICAgICAgICAgLmNvbmNhdChyZXN1bHQuc2xpY2UoNCwgNikpO1xuICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSA0KSB7XG4gICAgICAgIHVwY2EgPSB1cGNhLmNvbmNhdChyZXN1bHQuc2xpY2UoMSwgNSkpXG4gICAgICAgICAgICAuY29uY2F0KFswLCAwLCAwLCAwLCAwLCByZXN1bHRbNV1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB1cGNhID0gdXBjYS5jb25jYXQocmVzdWx0LnNsaWNlKDEsIDYpKVxuICAgICAgICAgICAgLmNvbmNhdChbMCwgMCwgMCwgMCwgbGFzdERpZ2l0XSk7XG4gICAgfVxuXG4gICAgdXBjYS5wdXNoKHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0pO1xuICAgIHJldHVybiB1cGNhO1xufTtcblxuVVBDRVJlYWRlci5wcm90b3R5cGUuX2NoZWNrc3VtID0gZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgcmV0dXJuIEVBTlJlYWRlci5wcm90b3R5cGUuX2NoZWNrc3VtLmNhbGwodGhpcywgdGhpcy5fY29udmVydFRvVVBDQShyZXN1bHQpKTtcbn07XG5cblVQQ0VSZWFkZXIucHJvdG90eXBlLl9maW5kRW5kID0gZnVuY3Rpb24ob2Zmc2V0LCBpc1doaXRlKSB7XG4gICAgaXNXaGl0ZSA9IHRydWU7XG4gICAgcmV0dXJuIEVBTlJlYWRlci5wcm90b3R5cGUuX2ZpbmRFbmQuY2FsbCh0aGlzLCBvZmZzZXQsIGlzV2hpdGUpO1xufTtcblxuVVBDRVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGVuZEluZm8pIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZDtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IGVuZEluZm8uZW5kICsgKChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpIC8gMik7XG4gICAgaWYgKHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA8IHNlbGYuX3Jvdy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UoZW5kSW5mby5lbmQsIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRJbmZvO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVVBDRVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvdXBjX2VfcmVhZGVyLmpzIiwiaW1wb3J0IEVBTlJlYWRlciBmcm9tICcuL2Vhbl9yZWFkZXInO1xuXG5mdW5jdGlvbiBVUENSZWFkZXIob3B0cywgc3VwcGxlbWVudHMpIHtcbiAgICBFQU5SZWFkZXIuY2FsbCh0aGlzLCBvcHRzLCBzdXBwbGVtZW50cyk7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEZPUk1BVDoge3ZhbHVlOiBcInVwY19hXCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5VUENSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFQU5SZWFkZXIucHJvdG90eXBlLCBwcm9wZXJ0aWVzKTtcblVQQ1JlYWRlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBVUENSZWFkZXI7XG5cblVQQ1JlYWRlci5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciByZXN1bHQgPSBFQU5SZWFkZXIucHJvdG90eXBlLl9kZWNvZGUuY2FsbCh0aGlzKTtcblxuICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgJiYgcmVzdWx0LmNvZGUubGVuZ3RoID09PSAxMyAmJiByZXN1bHQuY29kZS5jaGFyQXQoMCkgPT09IFwiMFwiKSB7XG4gICAgICAgIHJlc3VsdC5jb2RlID0gcmVzdWx0LmNvZGUuc3Vic3RyaW5nKDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVQQ1JlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvdXBjX3JlYWRlci5qcyIsIm1vZHVsZS5leHBvcnRzID0gY29weVxuXG4vKipcbiAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSBtYXQyIHRvIGFub3RoZXJcbiAqXG4gKiBAYWxpYXMgbWF0Mi5jb3B5XG4gKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeFxuICogQHBhcmFtIHttYXQyfSBhIHRoZSBzb3VyY2UgbWF0cml4XG4gKiBAcmV0dXJucyB7bWF0Mn0gb3V0XG4gKi9cbmZ1bmN0aW9uIGNvcHkob3V0LCBhKSB7XG4gIG91dFswXSA9IGFbMF1cbiAgb3V0WzFdID0gYVsxXVxuICBvdXRbMl0gPSBhWzJdXG4gIG91dFszXSA9IGFbM11cbiAgcmV0dXJuIG91dFxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2dsLW1hdDIvY29weS5qc1xuLy8gbW9kdWxlIGlkID0gNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IG1hdDJcbiAqXG4gKiBAYWxpYXMgbWF0Mi5jcmVhdGVcbiAqIEByZXR1cm5zIHttYXQyfSBhIG5ldyAyeDIgbWF0cml4XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgdmFyIG91dCA9IG5ldyBGbG9hdDMyQXJyYXkoNClcbiAgb3V0WzBdID0gMVxuICBvdXRbMV0gPSAwXG4gIG91dFsyXSA9IDBcbiAgb3V0WzNdID0gMVxuICByZXR1cm4gb3V0XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtbWF0Mi9jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDc5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gaW52ZXJ0XG5cbi8qKlxuICogSW52ZXJ0cyBhIG1hdDJcbiAqXG4gKiBAYWxpYXMgbWF0Mi5pbnZlcnRcbiAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4XG4gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXhcbiAqIEByZXR1cm5zIHttYXQyfSBvdXRcbiAqL1xuZnVuY3Rpb24gaW52ZXJ0KG91dCwgYSkge1xuICB2YXIgYTAgPSBhWzBdXG4gIHZhciBhMSA9IGFbMV1cbiAgdmFyIGEyID0gYVsyXVxuICB2YXIgYTMgPSBhWzNdXG4gIHZhciBkZXQgPSBhMCAqIGEzIC0gYTIgKiBhMVxuXG4gIGlmICghZGV0KSByZXR1cm4gbnVsbFxuICBkZXQgPSAxLjAgLyBkZXRcblxuICBvdXRbMF0gPSAgYTMgKiBkZXRcbiAgb3V0WzFdID0gLWExICogZGV0XG4gIG91dFsyXSA9IC1hMiAqIGRldFxuICBvdXRbM10gPSAgYTAgKiBkZXRcblxuICByZXR1cm4gb3V0XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtbWF0Mi9pbnZlcnQuanNcbi8vIG1vZHVsZSBpZCA9IDgwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gc2NhbGVcblxuLyoqXG4gKiBTY2FsZXMgYSB2ZWMyIGJ5IGEgc2NhbGFyIG51bWJlclxuICpcbiAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byBzY2FsZVxuICogQHBhcmFtIHtOdW1iZXJ9IGIgYW1vdW50IHRvIHNjYWxlIHRoZSB2ZWN0b3IgYnlcbiAqIEByZXR1cm5zIHt2ZWMyfSBvdXRcbiAqL1xuZnVuY3Rpb24gc2NhbGUob3V0LCBhLCBiKSB7XG4gICAgb3V0WzBdID0gYVswXSAqIGJcbiAgICBvdXRbMV0gPSBhWzFdICogYlxuICAgIHJldHVybiBvdXRcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtdmVjMi9zY2FsZS5qc1xuLy8gbW9kdWxlIGlkID0gODFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSB0cmFuc2Zvcm1NYXQyXG5cbi8qKlxuICogVHJhbnNmb3JtcyB0aGUgdmVjMiB3aXRoIGEgbWF0MlxuICpcbiAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7bWF0Mn0gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGhcbiAqIEByZXR1cm5zIHt2ZWMyfSBvdXRcbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtTWF0MihvdXQsIGEsIG0pIHtcbiAgICB2YXIgeCA9IGFbMF0sXG4gICAgICAgIHkgPSBhWzFdXG4gICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzJdICogeVxuICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVszXSAqIHlcbiAgICByZXR1cm4gb3V0XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2dsLXZlYzIvdHJhbnNmb3JtTWF0Mi5qc1xuLy8gbW9kdWxlIGlkID0gODJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSBjbG9uZTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHZlYzMgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3JcbiAqXG4gKiBAcGFyYW0ge3ZlYzN9IGEgdmVjdG9yIHRvIGNsb25lXG4gKiBAcmV0dXJucyB7dmVjM30gYSBuZXcgM0QgdmVjdG9yXG4gKi9cbmZ1bmN0aW9uIGNsb25lKGEpIHtcbiAgICB2YXIgb3V0ID0gbmV3IEZsb2F0MzJBcnJheSgzKVxuICAgIG91dFswXSA9IGFbMF1cbiAgICBvdXRbMV0gPSBhWzFdXG4gICAgb3V0WzJdID0gYVsyXVxuICAgIHJldHVybiBvdXRcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtdmVjMy9jbG9uZS5qc1xuLy8gbW9kdWxlIGlkID0gODNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGhhc2hDbGVhciA9IHJlcXVpcmUoJy4vX2hhc2hDbGVhcicpLFxuICAgIGhhc2hEZWxldGUgPSByZXF1aXJlKCcuL19oYXNoRGVsZXRlJyksXG4gICAgaGFzaEdldCA9IHJlcXVpcmUoJy4vX2hhc2hHZXQnKSxcbiAgICBoYXNoSGFzID0gcmVxdWlyZSgnLi9faGFzaEhhcycpLFxuICAgIGhhc2hTZXQgPSByZXF1aXJlKCcuL19oYXNoU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhhc2ggb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbkhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEhhc2g7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19IYXNoLmpzXG4vLyBtb2R1bGUgaWQgPSA4NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgTGlzdENhY2hlID0gcmVxdWlyZSgnLi9fTGlzdENhY2hlJyksXG4gICAgc3RhY2tDbGVhciA9IHJlcXVpcmUoJy4vX3N0YWNrQ2xlYXInKSxcbiAgICBzdGFja0RlbGV0ZSA9IHJlcXVpcmUoJy4vX3N0YWNrRGVsZXRlJyksXG4gICAgc3RhY2tHZXQgPSByZXF1aXJlKCcuL19zdGFja0dldCcpLFxuICAgIHN0YWNrSGFzID0gcmVxdWlyZSgnLi9fc3RhY2tIYXMnKSxcbiAgICBzdGFja1NldCA9IHJlcXVpcmUoJy4vX3N0YWNrU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcblN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcblN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcblN0YWNrLnByb3RvdHlwZS5oYXMgPSBzdGFja0hhcztcblN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxubW9kdWxlLmV4cG9ydHMgPSBTdGFjaztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX1N0YWNrLmpzXG4vLyBtb2R1bGUgaWQgPSA4NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgVWludDhBcnJheSA9IHJvb3QuVWludDhBcnJheTtcblxubW9kdWxlLmV4cG9ydHMgPSBVaW50OEFycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fVWludDhBcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gODZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBBIGZhc3RlciBhbHRlcm5hdGl2ZSB0byBgRnVuY3Rpb24jYXBwbHlgLCB0aGlzIGZ1bmN0aW9uIGludm9rZXMgYGZ1bmNgXG4gKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBgdGhpc0FyZ2AgYW5kIHRoZSBhcmd1bWVudHMgb2YgYGFyZ3NgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBmdW5jYC5cbiAqL1xuZnVuY3Rpb24gYXBwbHkoZnVuYywgdGhpc0FyZywgYXJncykge1xuICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdKTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICB9XG4gIHJldHVybiBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFwcGx5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYXBwbHkuanNcbi8vIG1vZHVsZSBpZCA9IDg3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlVGltZXMgPSByZXF1aXJlKCcuL19iYXNlVGltZXMnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNCdWZmZXIgPSByZXF1aXJlKCcuL2lzQnVmZmVyJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc1R5cGVkQXJyYXkgPSByZXF1aXJlKCcuL2lzVHlwZWRBcnJheScpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZCBTcGVjaWZ5IHJldHVybmluZyBpbmhlcml0ZWQgcHJvcGVydHkgbmFtZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBhcnJheUxpa2VLZXlzKHZhbHVlLCBpbmhlcml0ZWQpIHtcbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSksXG4gICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXG4gICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgIWlzQXJnICYmIGlzQnVmZmVyKHZhbHVlKSxcbiAgICAgIGlzVHlwZSA9ICFpc0FyciAmJiAhaXNBcmcgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkodmFsdWUpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxuICAgICAgcmVzdWx0ID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcpIDogW10sXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgKFxuICAgICAgICAgICAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxuICAgICAgICAgICAvLyBOb2RlLmpzIDAuMTAgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gYnVmZmVycy5cbiAgICAgICAgICAgKGlzQnVmZiAmJiAoa2V5ID09ICdvZmZzZXQnIHx8IGtleSA9PSAncGFyZW50JykpIHx8XG4gICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cbiAgICAgICAgICAgKGlzVHlwZSAmJiAoa2V5ID09ICdidWZmZXInIHx8IGtleSA9PSAnYnl0ZUxlbmd0aCcgfHwga2V5ID09ICdieXRlT2Zmc2V0JykpIHx8XG4gICAgICAgICAgIC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcbiAgICAgICAgKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlMaWtlS2V5cztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2FycmF5TGlrZUtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDg4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gKiBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlNYXA7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19hcnJheU1hcC5qc1xuLy8gbW9kdWxlIGlkID0gODlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBBcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBgdmFsdWVzYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gYXBwZW5kLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5UHVzaChhcnJheSwgdmFsdWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgIG9mZnNldCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5UHVzaDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2FycmF5UHVzaC5qc1xuLy8gbW9kdWxlIGlkID0gOTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RDcmVhdGUgPSBPYmplY3QuY3JlYXRlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNyZWF0ZWAgd2l0aG91dCBzdXBwb3J0IGZvciBhc3NpZ25pbmdcbiAqIHByb3BlcnRpZXMgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvdG8gVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICovXG52YXIgYmFzZUNyZWF0ZSA9IChmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gb2JqZWN0KCkge31cbiAgcmV0dXJuIGZ1bmN0aW9uKHByb3RvKSB7XG4gICAgaWYgKCFpc09iamVjdChwcm90bykpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgaWYgKG9iamVjdENyZWF0ZSkge1xuICAgICAgcmV0dXJuIG9iamVjdENyZWF0ZShwcm90byk7XG4gICAgfVxuICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90bztcbiAgICB2YXIgcmVzdWx0ID0gbmV3IG9iamVjdDtcbiAgICBvYmplY3QucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDcmVhdGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlQ3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSA5MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXJyYXlQdXNoID0gcmVxdWlyZSgnLi9fYXJyYXlQdXNoJyksXG4gICAgaXNGbGF0dGVuYWJsZSA9IHJlcXVpcmUoJy4vX2lzRmxhdHRlbmFibGUnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mbGF0dGVuYCB3aXRoIHN1cHBvcnQgZm9yIHJlc3RyaWN0aW5nIGZsYXR0ZW5pbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICogQHBhcmFtIHtudW1iZXJ9IGRlcHRoIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3ByZWRpY2F0ZT1pc0ZsYXR0ZW5hYmxlXSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNTdHJpY3RdIFJlc3RyaWN0IHRvIHZhbHVlcyB0aGF0IHBhc3MgYHByZWRpY2F0ZWAgY2hlY2tzLlxuICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdD1bXV0gVGhlIGluaXRpYWwgcmVzdWx0IHZhbHVlLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBwcmVkaWNhdGUgfHwgKHByZWRpY2F0ZSA9IGlzRmxhdHRlbmFibGUpO1xuICByZXN1bHQgfHwgKHJlc3VsdCA9IFtdKTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAoZGVwdGggPiAwICYmIHByZWRpY2F0ZSh2YWx1ZSkpIHtcbiAgICAgIGlmIChkZXB0aCA+IDEpIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmxhdHRlbiBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgYmFzZUZsYXR0ZW4odmFsdWUsIGRlcHRoIC0gMSwgcHJlZGljYXRlLCBpc1N0cmljdCwgcmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFycmF5UHVzaChyZXN1bHQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFpc1N0cmljdCkge1xuICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZsYXR0ZW47XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlRmxhdHRlbi5qc1xuLy8gbW9kdWxlIGlkID0gOTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNyZWF0ZUJhc2VGb3IgPSByZXF1aXJlKCcuL19jcmVhdGVCYXNlRm9yJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYG9iamVjdGBcbiAqIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgYGtleXNGdW5jYCBhbmQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIHByb3BlcnR5LlxuICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG52YXIgYmFzZUZvciA9IGNyZWF0ZUJhc2VGb3IoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRm9yO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZUZvci5qc1xuLy8gbW9kdWxlIGlkID0gOTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNhc3RQYXRoID0gcmVxdWlyZSgnLi9fY2FzdFBhdGgnKSxcbiAgICB0b0tleSA9IHJlcXVpcmUoJy4vX3RvS2V5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCkge1xuICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICB2YXIgaW5kZXggPSAwLFxuICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGg7XG5cbiAgd2hpbGUgKG9iamVjdCAhPSBudWxsICYmIGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgb2JqZWN0ID0gb2JqZWN0W3RvS2V5KHBhdGhbaW5kZXgrK10pXTtcbiAgfVxuICByZXR1cm4gKGluZGV4ICYmIGluZGV4ID09IGxlbmd0aCkgPyBvYmplY3QgOiB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VHZXQuanNcbi8vIG1vZHVsZSBpZCA9IDk0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30ga2V5IFRoZSBrZXkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VIYXNJbihvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYga2V5IGluIE9iamVjdChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VIYXNJbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VIYXNJbi5qc1xuLy8gbW9kdWxlIGlkID0gOTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNBcmd1bWVudHM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanNcbi8vIG1vZHVsZSBpZCA9IDk2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNNYXNrZWQgPSByZXF1aXJlKCcuL19pc01hc2tlZCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIHRvU291cmNlID0gcmVxdWlyZSgnLi9fdG9Tb3VyY2UnKTtcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNOYXRpdmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlSXNOYXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDk3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIG9mIHR5cGVkIGFycmF5cy4gKi9cbnZhciB0eXBlZEFycmF5VGFncyA9IHt9O1xudHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQ4VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG50eXBlZEFycmF5VGFnc1thcmdzVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2FycmF5VGFnXSA9XG50eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG50eXBlZEFycmF5VGFnc1tkYXRhVmlld1RhZ10gPSB0eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9XG50eXBlZEFycmF5VGFnc1tlcnJvclRhZ10gPSB0eXBlZEFycmF5VGFnc1tmdW5jVGFnXSA9XG50eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9XG50eXBlZEFycmF5VGFnc1tvYmplY3RUYWddID0gdHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9XG50eXBlZEFycmF5VGFnc1tzZXRUYWddID0gdHlwZWRBcnJheVRhZ3Nbc3RyaW5nVGFnXSA9XG50eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzVHlwZWRBcnJheWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmXG4gICAgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW2Jhc2VHZXRUYWcodmFsdWUpXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNUeXBlZEFycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gOThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKSxcbiAgICBuYXRpdmVLZXlzSW4gPSByZXF1aXJlKCcuL19uYXRpdmVLZXlzSW4nKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzSW5gIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXNJbihvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXNJbihvYmplY3QpO1xuICB9XG4gIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlS2V5c0luO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZUtleXNJbi5qc1xuLy8gbW9kdWxlIGlkID0gOTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIFN0YWNrID0gcmVxdWlyZSgnLi9fU3RhY2snKSxcbiAgICBhc3NpZ25NZXJnZVZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduTWVyZ2VWYWx1ZScpLFxuICAgIGJhc2VGb3IgPSByZXF1aXJlKCcuL19iYXNlRm9yJyksXG4gICAgYmFzZU1lcmdlRGVlcCA9IHJlcXVpcmUoJy4vX2Jhc2VNZXJnZURlZXAnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuL2tleXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lcmdlYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgbWVyZ2VkIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gKiAgY291bnRlcnBhcnRzLlxuICovXG5mdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjaykge1xuICBpZiAob2JqZWN0ID09PSBzb3VyY2UpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYmFzZUZvcihzb3VyY2UsIGZ1bmN0aW9uKHNyY1ZhbHVlLCBrZXkpIHtcbiAgICBpZiAoaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xuICAgICAgfVxuICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgfSwga2V5c0luKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWVyZ2U7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlTWVyZ2UuanNcbi8vIG1vZHVsZSBpZCA9IDEwMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXNzaWduTWVyZ2VWYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnbk1lcmdlVmFsdWUnKSxcbiAgICBjbG9uZUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQnVmZmVyJyksXG4gICAgY2xvbmVUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9fY2xvbmVUeXBlZEFycmF5JyksXG4gICAgY29weUFycmF5ID0gcmVxdWlyZSgnLi9fY29weUFycmF5JyksXG4gICAgaW5pdENsb25lT2JqZWN0ID0gcmVxdWlyZSgnLi9faW5pdENsb25lT2JqZWN0JyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQXJyYXlMaWtlT2JqZWN0ID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZU9iamVjdCcpLFxuICAgIGlzQnVmZmVyID0gcmVxdWlyZSgnLi9pc0J1ZmZlcicpLFxuICAgIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBpc1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnLi9pc1BsYWluT2JqZWN0JyksXG4gICAgaXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9pc1R5cGVkQXJyYXknKSxcbiAgICB0b1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnLi90b1BsYWluT2JqZWN0Jyk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlTWVyZ2VgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAqIGRlZXAgbWVyZ2VzIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIG1lcmdlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gbWVyZ2UuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGdW5jIFRoZSBmdW5jdGlvbiB0byBtZXJnZSB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICogIGNvdW50ZXJwYXJ0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFjaykge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgIHNyY1ZhbHVlID0gc291cmNlW2tleV0sXG4gICAgICBzdGFja2VkID0gc3RhY2suZ2V0KHNyY1ZhbHVlKTtcblxuICBpZiAoc3RhY2tlZCkge1xuICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIHN0YWNrZWQpO1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHZhciBpc0NvbW1vbiA9IG5ld1ZhbHVlID09PSB1bmRlZmluZWQ7XG5cbiAgaWYgKGlzQ29tbW9uKSB7XG4gICAgdmFyIGlzQXJyID0gaXNBcnJheShzcmNWYWx1ZSksXG4gICAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiBpc0J1ZmZlcihzcmNWYWx1ZSksXG4gICAgICAgIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xuXG4gICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICBpZiAoaXNBcnIgfHwgaXNCdWZmIHx8IGlzVHlwZWQpIHtcbiAgICAgIGlmIChpc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaXNBcnJheUxpa2VPYmplY3Qob2JqVmFsdWUpKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzQnVmZikge1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICBuZXdWYWx1ZSA9IGNsb25lQnVmZmVyKHNyY1ZhbHVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzVHlwZWQpIHtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgbmV3VmFsdWUgPSBjbG9uZVR5cGVkQXJyYXkoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIG5ld1ZhbHVlID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qoc3JjVmFsdWUpIHx8IGlzQXJndW1lbnRzKHNyY1ZhbHVlKSkge1xuICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgIGlmIChpc0FyZ3VtZW50cyhvYmpWYWx1ZSkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSB0b1BsYWluT2JqZWN0KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKCFpc09iamVjdChvYmpWYWx1ZSkgfHwgKHNyY0luZGV4ICYmIGlzRnVuY3Rpb24ob2JqVmFsdWUpKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IGluaXRDbG9uZU9iamVjdChzcmNWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgaWYgKGlzQ29tbW9uKSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgbWVyZ2Ugb2JqZWN0cyBhbmQgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgbWVyZ2VGdW5jKG5ld1ZhbHVlLCBzcmNWYWx1ZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICB9XG4gIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWVyZ2VEZWVwO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZU1lcmdlRGVlcC5qc1xuLy8gbW9kdWxlIGlkID0gMTAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlUGlja0J5ID0gcmVxdWlyZSgnLi9fYmFzZVBpY2tCeScpLFxuICAgIGhhc0luID0gcmVxdWlyZSgnLi9oYXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnBpY2tgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICogcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpIHtcbiAgcmV0dXJuIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgICByZXR1cm4gaGFzSW4ob2JqZWN0LCBwYXRoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVBpY2s7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlUGljay5qc1xuLy8gbW9kdWxlIGlkID0gMTAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9fYmFzZUdldCcpLFxuICAgIGJhc2VTZXQgPSByZXF1aXJlKCcuL19iYXNlU2V0JyksXG4gICAgY2FzdFBhdGggPSByZXF1aXJlKCcuL19jYXN0UGF0aCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mICBgXy5waWNrQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhzIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBwcm9wZXJ0eS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0ge307XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSxcbiAgICAgICAgdmFsdWUgPSBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG5cbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBwYXRoKSkge1xuICAgICAgYmFzZVNldChyZXN1bHQsIGNhc3RQYXRoKHBhdGgsIG9iamVjdCksIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlUGlja0J5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZVBpY2tCeS5qc1xuLy8gbW9kdWxlIGlkID0gMTAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4vaWRlbnRpdHknKSxcbiAgICBvdmVyUmVzdCA9IHJlcXVpcmUoJy4vX292ZXJSZXN0JyksXG4gICAgc2V0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19zZXRUb1N0cmluZycpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlc3RgIHdoaWNoIGRvZXNuJ3QgdmFsaWRhdGUgb3IgY29lcmNlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUmVzdChmdW5jLCBzdGFydCkge1xuICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgc3RhcnQsIGlkZW50aXR5KSwgZnVuYyArICcnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlUmVzdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VSZXN0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduVmFsdWUnKSxcbiAgICBjYXN0UGF0aCA9IHJlcXVpcmUoJy4vX2Nhc3RQYXRoJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICB0b0tleSA9IHJlcXVpcmUoJy4vX3RvS2V5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2V0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBwYXRoIGNyZWF0aW9uLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cbiAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcbiAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICBuZXN0ZWQgPSBvYmplY3Q7XG5cbiAgd2hpbGUgKG5lc3RlZCAhPSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pLFxuICAgICAgICBuZXdWYWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKGluZGV4ICE9IGxhc3RJbmRleCkge1xuICAgICAgdmFyIG9ialZhbHVlID0gbmVzdGVkW2tleV07XG4gICAgICBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBrZXksIG5lc3RlZCkgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBuZXdWYWx1ZSA9IGlzT2JqZWN0KG9ialZhbHVlKVxuICAgICAgICAgID8gb2JqVmFsdWVcbiAgICAgICAgICA6IChpc0luZGV4KHBhdGhbaW5kZXggKyAxXSkgPyBbXSA6IHt9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXNzaWduVmFsdWUobmVzdGVkLCBrZXksIG5ld1ZhbHVlKTtcbiAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTZXQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlU2V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNvbnN0YW50ID0gcmVxdWlyZSgnLi9jb25zdGFudCcpLFxuICAgIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fZGVmaW5lUHJvcGVydHknKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4vaWRlbnRpdHknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0VG9TdHJpbmdgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICovXG52YXIgYmFzZVNldFRvU3RyaW5nID0gIWRlZmluZVByb3BlcnR5ID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBzdHJpbmcpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmMsICd0b1N0cmluZycsIHtcbiAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAnZW51bWVyYWJsZSc6IGZhbHNlLFxuICAgICd2YWx1ZSc6IGNvbnN0YW50KHN0cmluZyksXG4gICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVNldFRvU3RyaW5nO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZVNldFRvU3RyaW5nLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50aW1lc2Agd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzXG4gKiBvciBtYXggYXJyYXkgbGVuZ3RoIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KG4pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVGltZXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlVGltZXMuanNcbi8vIG1vZHVsZSBpZCA9IDEwN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fU3ltYm9sJyksXG4gICAgYXJyYXlNYXAgPSByZXF1aXJlKCcuL19hcnJheU1hcCcpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFRvU3RyaW5nID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by50b1N0cmluZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1N0cmluZ2Agd2hpY2ggZG9lc24ndCBjb252ZXJ0IG51bGxpc2hcbiAqIHZhbHVlcyB0byBlbXB0eSBzdHJpbmdzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgLy8gRXhpdCBlYXJseSBmb3Igc3RyaW5ncyB0byBhdm9pZCBhIHBlcmZvcm1hbmNlIGhpdCBpbiBzb21lIGVudmlyb25tZW50cy5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAvLyBSZWN1cnNpdmVseSBjb252ZXJ0IHZhbHVlcyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgYmFzZVRvU3RyaW5nKSArICcnO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc3ltYm9sVG9TdHJpbmcgPyBzeW1ib2xUb1N0cmluZy5jYWxsKHZhbHVlKSA6ICcnO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVG9TdHJpbmc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlVG9TdHJpbmcuanNcbi8vIG1vZHVsZSBpZCA9IDEwOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gZnVuYyh2YWx1ZSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVVuYXJ5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZVVuYXJ5LmpzXG4vLyBtb2R1bGUgaWQgPSAxMDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIFVpbnQ4QXJyYXkgPSByZXF1aXJlKCcuL19VaW50OEFycmF5Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZUFycmF5QnVmZmVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY2xvbmVBcnJheUJ1ZmZlci5qc1xuLy8gbW9kdWxlIGlkID0gMTEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIEJ1ZmZlciA9IG1vZHVsZUV4cG9ydHMgPyByb290LkJ1ZmZlciA6IHVuZGVmaW5lZCxcbiAgICBhbGxvY1Vuc2FmZSA9IEJ1ZmZlciA/IEJ1ZmZlci5hbGxvY1Vuc2FmZSA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgIGBidWZmZXJgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIFRoZSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge0J1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGJ1ZmZlci5cbiAqL1xuZnVuY3Rpb24gY2xvbmVCdWZmZXIoYnVmZmVyLCBpc0RlZXApIHtcbiAgaWYgKGlzRGVlcCkge1xuICAgIHJldHVybiBidWZmZXIuc2xpY2UoKTtcbiAgfVxuICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IGFsbG9jVW5zYWZlID8gYWxsb2NVbnNhZmUobGVuZ3RoKSA6IG5ldyBidWZmZXIuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICBidWZmZXIuY29weShyZXN1bHQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb25lQnVmZmVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY2xvbmVCdWZmZXIuanNcbi8vIG1vZHVsZSBpZCA9IDExMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgY2xvbmVBcnJheUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQXJyYXlCdWZmZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHR5cGVkQXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gdHlwZWRBcnJheSBUaGUgdHlwZWQgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHR5cGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkodHlwZWRBcnJheSwgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKHR5cGVkQXJyYXkuYnVmZmVyKSA6IHR5cGVkQXJyYXkuYnVmZmVyO1xuICByZXR1cm4gbmV3IHR5cGVkQXJyYXkuY29uc3RydWN0b3IoYnVmZmVyLCB0eXBlZEFycmF5LmJ5dGVPZmZzZXQsIHR5cGVkQXJyYXkubGVuZ3RoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZVR5cGVkQXJyYXk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jbG9uZVR5cGVkQXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDExMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb3B5QXJyYXk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jb3B5QXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDExM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19hc3NpZ25WYWx1ZScpLFxuICAgIGJhc2VBc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Jhc2VBc3NpZ25WYWx1ZScpO1xuXG4vKipcbiAqIENvcGllcyBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMgdG8gY29weS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvcGllZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5T2JqZWN0KHNvdXJjZSwgcHJvcHMsIG9iamVjdCwgY3VzdG9taXplcikge1xuICB2YXIgaXNOZXcgPSAhb2JqZWN0O1xuICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG5cbiAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3VmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb3B5T2JqZWN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY29weU9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb3ZlcnJlYWNoaW5nIGNvcmUtanMgc2hpbXMuICovXG52YXIgY29yZUpzRGF0YSA9IHJvb3RbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcmVKc0RhdGE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jb3JlSnNEYXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBpc0l0ZXJhdGVlQ2FsbCA9IHJlcXVpcmUoJy4vX2lzSXRlcmF0ZWVDYWxsJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQXNzaWduZXI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qc1xuLy8gbW9kdWxlIGlkID0gMTE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQ3JlYXRlcyBhIGJhc2UgZnVuY3Rpb24gZm9yIG1ldGhvZHMgbGlrZSBgXy5mb3JJbmAgYW5kIGBfLmZvck93bmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNGdW5jKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KG9iamVjdCksXG4gICAgICAgIHByb3BzID0ga2V5c0Z1bmMob2JqZWN0KSxcbiAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICB2YXIga2V5ID0gcHJvcHNbZnJvbVJpZ2h0ID8gbGVuZ3RoIDogKytpbmRleF07XG4gICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUJhc2VGb3I7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jcmVhdGVCYXNlRm9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGZsYXR0ZW4gPSByZXF1aXJlKCcuL2ZsYXR0ZW4nKSxcbiAgICBvdmVyUmVzdCA9IHJlcXVpcmUoJy4vX292ZXJSZXN0JyksXG4gICAgc2V0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19zZXRUb1N0cmluZycpO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVJlc3RgIHdoaWNoIGZsYXR0ZW5zIHRoZSByZXN0IGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGZsYXRSZXN0KGZ1bmMpIHtcbiAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHVuZGVmaW5lZCwgZmxhdHRlbiksIGZ1bmMgKyAnJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdFJlc3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19mbGF0UmVzdC5qc1xuLy8gbW9kdWxlIGlkID0gMTE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFJhd1RhZztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2dldFJhd1RhZy5qc1xuLy8gbW9kdWxlIGlkID0gMTE5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlKG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFZhbHVlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fZ2V0VmFsdWUuanNcbi8vIG1vZHVsZSBpZCA9IDEyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgY2FzdFBhdGggPSByZXF1aXJlKCcuL19jYXN0UGF0aCcpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0luZGV4ID0gcmVxdWlyZSgnLi9faXNJbmRleCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpLFxuICAgIHRvS2V5ID0gcmVxdWlyZSgnLi9fdG9LZXknKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHBhdGhgIGV4aXN0cyBvbiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYXNGdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjayBwcm9wZXJ0aWVzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzUGF0aChvYmplY3QsIHBhdGgsIGhhc0Z1bmMpIHtcbiAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHRvS2V5KHBhdGhbaW5kZXhdKTtcbiAgICBpZiAoIShyZXN1bHQgPSBvYmplY3QgIT0gbnVsbCAmJiBoYXNGdW5jKG9iamVjdCwga2V5KSkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgfVxuICBpZiAocmVzdWx0IHx8ICsraW5kZXggIT0gbGVuZ3RoKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBsZW5ndGggPSBvYmplY3QgPT0gbnVsbCA/IDAgOiBvYmplY3QubGVuZ3RoO1xuICByZXR1cm4gISFsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSAmJlxuICAgIChpc0FycmF5KG9iamVjdCkgfHwgaXNBcmd1bWVudHMob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzUGF0aDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2hhc1BhdGguanNcbi8vIG1vZHVsZSBpZCA9IDEyMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgbmF0aXZlQ3JlYXRlID0gcmVxdWlyZSgnLi9fbmF0aXZlQ3JlYXRlJyk7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2hDbGVhcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2hhc2hDbGVhci5qc1xuLy8gbW9kdWxlIGlkID0gMTIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGhhc2guXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoRGVsZXRlKGtleSkge1xuICB2YXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xuICB0aGlzLnNpemUgLT0gcmVzdWx0ID8gMSA6IDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzaERlbGV0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2hhc2hEZWxldGUuanNcbi8vIG1vZHVsZSBpZCA9IDEyM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgbmF0aXZlQ3JlYXRlID0gcmVxdWlyZSgnLi9fbmF0aXZlQ3JlYXRlJyk7XG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBHZXRzIHRoZSBoYXNoIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGhhc2hHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgaWYgKG5hdGl2ZUNyZWF0ZSkge1xuICAgIHZhciByZXN1bHQgPSBkYXRhW2tleV07XG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gSEFTSF9VTkRFRklORUQgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KSA/IGRhdGFba2V5XSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoR2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faGFzaEdldC5qc1xuLy8gbW9kdWxlIGlkID0gMTI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBuYXRpdmVDcmVhdGUgPSByZXF1aXJlKCcuL19uYXRpdmVDcmVhdGUnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBoYXNoIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoSGFzKGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gIHJldHVybiBuYXRpdmVDcmVhdGUgPyAoZGF0YVtrZXldICE9PSB1bmRlZmluZWQpIDogaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2hIYXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19oYXNoSGFzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIG5hdGl2ZUNyZWF0ZSA9IHJlcXVpcmUoJy4vX25hdGl2ZUNyZWF0ZScpO1xuXG4vKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKlxuICogU2V0cyB0aGUgaGFzaCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGhhc2ggaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gIHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhrZXkpID8gMCA6IDE7XG4gIGRhdGFba2V5XSA9IChuYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xuICByZXR1cm4gdGhpcztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoU2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faGFzaFNldC5qc1xuLy8gbW9kdWxlIGlkID0gMTI2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlQ3JlYXRlID0gcmVxdWlyZSgnLi9fYmFzZUNyZWF0ZScpLFxuICAgIGdldFByb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2dldFByb3RvdHlwZScpLFxuICAgIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIG9iamVjdC5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmICFpc1Byb3RvdHlwZShvYmplY3QpKVxuICAgID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSlcbiAgICA6IHt9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZU9iamVjdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2luaXRDbG9uZU9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTI3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5Jyk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHNwcmVhZGFibGVTeW1ib2wgPSBTeW1ib2wgPyBTeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgZmxhdHRlbmFibGUgYGFyZ3VtZW50c2Agb2JqZWN0IG9yIGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGZsYXR0ZW5hYmxlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzRmxhdHRlbmFibGUodmFsdWUpIHtcbiAgcmV0dXJuIGlzQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSB8fFxuICAgICEhKHNwcmVhZGFibGVTeW1ib2wgJiYgdmFsdWUgJiYgdmFsdWVbc3ByZWFkYWJsZVN5bWJvbF0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRmxhdHRlbmFibGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19pc0ZsYXR0ZW5hYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGVxID0gcmVxdWlyZSgnLi9lcScpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL19pc0luZGV4JyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIHZhbHVlIGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBpbmRleCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIGluZGV4IG9yIGtleSBhcmd1bWVudC5cbiAqIEBwYXJhbSB7Kn0gb2JqZWN0IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgb2JqZWN0IGFyZ3VtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgaWYgKHR5cGUgPT0gJ251bWJlcidcbiAgICAgICAgPyAoaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSlcbiAgICAgICAgOiAodHlwZSA9PSAnc3RyaW5nJyAmJiBpbmRleCBpbiBvYmplY3QpXG4gICAgICApIHtcbiAgICByZXR1cm4gZXEob2JqZWN0W2luZGV4XSwgdmFsdWUpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0l0ZXJhdGVlQ2FsbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2lzSXRlcmF0ZWVDYWxsLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgdG8gbWF0Y2ggcHJvcGVydHkgbmFtZXMgd2l0aGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlSXNEZWVwUHJvcCA9IC9cXC58XFxbKD86W15bXFxdXSp8KFtcIiddKSg/Oig/IVxcMSlbXlxcXFxdfFxcXFwuKSo/XFwxKVxcXS8sXG4gICAgcmVJc1BsYWluUHJvcCA9IC9eXFx3KiQvO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSBhbmQgbm90IGEgcHJvcGVydHkgcGF0aC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzS2V5KHZhbHVlLCBvYmplY3QpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8XG4gICAgICB2YWx1ZSA9PSBudWxsIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiByZUlzUGxhaW5Qcm9wLnRlc3QodmFsdWUpIHx8ICFyZUlzRGVlcFByb3AudGVzdCh2YWx1ZSkgfHxcbiAgICAob2JqZWN0ICE9IG51bGwgJiYgdmFsdWUgaW4gT2JqZWN0KG9iamVjdCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzS2V5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faXNLZXkuanNcbi8vIG1vZHVsZSBpZCA9IDEzMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciB1c2UgYXMgdW5pcXVlIG9iamVjdCBrZXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgID8gKHZhbHVlICE9PSAnX19wcm90b19fJylcbiAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNLZXlhYmxlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faXNLZXlhYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNvcmVKc0RhdGEgPSByZXF1aXJlKCcuL19jb3JlSnNEYXRhJyk7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNNYXNrZWQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19pc01hc2tlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTMyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlQ2xlYXIoKSB7XG4gIHRoaXMuX19kYXRhX18gPSBbXTtcbiAgdGhpcy5zaXplID0gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXN0Q2FjaGVDbGVhcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2xpc3RDYWNoZUNsZWFyLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBsYXN0SW5kZXggPSBkYXRhLmxlbmd0aCAtIDE7XG4gIGlmIChpbmRleCA9PSBsYXN0SW5kZXgpIHtcbiAgICBkYXRhLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIHNwbGljZS5jYWxsKGRhdGEsIGluZGV4LCAxKTtcbiAgfVxuICAtLXRoaXMuc2l6ZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlRGVsZXRlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbGlzdENhY2hlRGVsZXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKipcbiAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IGRhdGFbaW5kZXhdWzFdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RDYWNoZUdldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2xpc3RDYWNoZUdldC5qc1xuLy8gbW9kdWxlIGlkID0gMTM1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBhc3NvY0luZGV4T2YgPSByZXF1aXJlKCcuL19hc3NvY0luZGV4T2YnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlSGFzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbGlzdENhY2hlSGFzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKipcbiAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgICsrdGhpcy5zaXplO1xuICAgIGRhdGEucHVzaChba2V5LCB2YWx1ZV0pO1xuICB9IGVsc2Uge1xuICAgIGRhdGFbaW5kZXhdWzFdID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlU2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbGlzdENhY2hlU2V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMzdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIEhhc2ggPSByZXF1aXJlKCcuL19IYXNoJyksXG4gICAgTGlzdENhY2hlID0gcmVxdWlyZSgnLi9fTGlzdENhY2hlJyksXG4gICAgTWFwID0gcmVxdWlyZSgnLi9fTWFwJyk7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbWFwLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlQ2xlYXIoKSB7XG4gIHRoaXMuc2l6ZSA9IDA7XG4gIHRoaXMuX19kYXRhX18gPSB7XG4gICAgJ2hhc2gnOiBuZXcgSGFzaCxcbiAgICAnbWFwJzogbmV3IChNYXAgfHwgTGlzdENhY2hlKSxcbiAgICAnc3RyaW5nJzogbmV3IEhhc2hcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZUNsZWFyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbWFwQ2FjaGVDbGVhci5qc1xuLy8gbW9kdWxlIGlkID0gMTM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBnZXRNYXBEYXRhID0gcmVxdWlyZSgnLi9fZ2V0TWFwRGF0YScpO1xuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBtYXAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVEZWxldGUoa2V5KSB7XG4gIHZhciByZXN1bHQgPSBnZXRNYXBEYXRhKHRoaXMsIGtleSlbJ2RlbGV0ZSddKGtleSk7XG4gIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZURlbGV0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX21hcENhY2hlRGVsZXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE1hcERhdGEgPSByZXF1aXJlKCcuL19nZXRNYXBEYXRhJyk7XG5cbi8qKlxuICogR2V0cyB0aGUgbWFwIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUdldChrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5nZXQoa2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZUdldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX21hcENhY2hlR2V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxNDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE1hcERhdGEgPSByZXF1aXJlKCcuL19nZXRNYXBEYXRhJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbWFwIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVIYXMoa2V5KSB7XG4gIHJldHVybiBnZXRNYXBEYXRhKHRoaXMsIGtleSkuaGFzKGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVIYXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19tYXBDYWNoZUhhcy5qc1xuLy8gbW9kdWxlIGlkID0gMTQxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBnZXRNYXBEYXRhID0gcmVxdWlyZSgnLi9fZ2V0TWFwRGF0YScpO1xuXG4vKipcbiAqIFNldHMgdGhlIG1hcCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBtYXAgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSBnZXRNYXBEYXRhKHRoaXMsIGtleSksXG4gICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgKz0gZGF0YS5zaXplID09IHNpemUgPyAwIDogMTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVTZXQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19tYXBDYWNoZVNldC5qc1xuLy8gbW9kdWxlIGlkID0gMTQyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBtZW1vaXplID0gcmVxdWlyZSgnLi9tZW1vaXplJyk7XG5cbi8qKiBVc2VkIGFzIHRoZSBtYXhpbXVtIG1lbW9pemUgY2FjaGUgc2l6ZS4gKi9cbnZhciBNQVhfTUVNT0laRV9TSVpFID0gNTAwO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tZW1vaXplYCB3aGljaCBjbGVhcnMgdGhlIG1lbW9pemVkIGZ1bmN0aW9uJ3NcbiAqIGNhY2hlIHdoZW4gaXQgZXhjZWVkcyBgTUFYX01FTU9JWkVfU0laRWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBtZW1vaXplQ2FwcGVkKGZ1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IG1lbW9pemUoZnVuYywgZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKGNhY2hlLnNpemUgPT09IE1BWF9NRU1PSVpFX1NJWkUpIHtcbiAgICAgIGNhY2hlLmNsZWFyKCk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH0pO1xuXG4gIHZhciBjYWNoZSA9IHJlc3VsdC5jYWNoZTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZW1vaXplQ2FwcGVkO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbWVtb2l6ZUNhcHBlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTQzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gKiBbYE9iamVjdC5rZXlzYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKG9iamVjdCAhPSBudWxsKSB7XG4gICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5hdGl2ZUtleXNJbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX25hdGl2ZUtleXNJbi5qc1xuLy8gbW9kdWxlIGlkID0gMTQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBmcmVlR2xvYmFsID0gcmVxdWlyZSgnLi9fZnJlZUdsb2JhbCcpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgcHJvY2Vzc2AgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVQcm9jZXNzID0gbW9kdWxlRXhwb3J0cyAmJiBmcmVlR2xvYmFsLnByb2Nlc3M7XG5cbi8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xudmFyIG5vZGVVdGlsID0gKGZ1bmN0aW9uKCkge1xuICB0cnkge1xuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gbm9kZVV0aWw7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19ub2RlVXRpbC5qc1xuLy8gbW9kdWxlIGlkID0gMTQ1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9iamVjdFRvU3RyaW5nO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fb2JqZWN0VG9TdHJpbmcuanNcbi8vIG1vZHVsZSBpZCA9IDE0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIENyZWF0ZXMgYSB1bmFyeSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggaXRzIGFyZ3VtZW50IHRyYW5zZm9ybWVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlckFyZyhmdW5jLCB0cmFuc2Zvcm0pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiBmdW5jKHRyYW5zZm9ybShhcmcpKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvdmVyQXJnO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fb3ZlckFyZy5qc1xuLy8gbW9kdWxlIGlkID0gMTQ3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIHRvIGRldGVjdCBob3QgZnVuY3Rpb25zIGJ5IG51bWJlciBvZiBjYWxscyB3aXRoaW4gYSBzcGFuIG9mIG1pbGxpc2Vjb25kcy4gKi9cbnZhciBIT1RfQ09VTlQgPSA4MDAsXG4gICAgSE9UX1NQQU4gPSAxNjtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU5vdyA9IERhdGUubm93O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0J2xsIHNob3J0IG91dCBhbmQgaW52b2tlIGBpZGVudGl0eWAgaW5zdGVhZFxuICogb2YgYGZ1bmNgIHdoZW4gaXQncyBjYWxsZWQgYEhPVF9DT1VOVGAgb3IgbW9yZSB0aW1lcyBpbiBgSE9UX1NQQU5gXG4gKiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlc3RyaWN0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc2hvcnRhYmxlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBzaG9ydE91dChmdW5jKSB7XG4gIHZhciBjb3VudCA9IDAsXG4gICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksXG4gICAgICAgIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1wIC0gbGFzdENhbGxlZCk7XG5cbiAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgIGlmICgrK2NvdW50ID49IEhPVF9DT1VOVCkge1xuICAgICAgICByZXR1cm4gYXJndW1lbnRzWzBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudCA9IDA7XG4gICAgfVxuICAgIHJldHVybiBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG9ydE91dDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX3Nob3J0T3V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIExpc3RDYWNoZSA9IHJlcXVpcmUoJy4vX0xpc3RDYWNoZScpO1xuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIFN0YWNrXG4gKi9cbmZ1bmN0aW9uIHN0YWNrQ2xlYXIoKSB7XG4gIHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlO1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrQ2xlYXI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zdGFja0NsZWFyLmpzXG4vLyBtb2R1bGUgaWQgPSAxNDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XG5cbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrRGVsZXRlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fc3RhY2tEZWxldGUuanNcbi8vIG1vZHVsZSBpZCA9IDE1MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RhY2tHZXQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zdGFja0dldC5qc1xuLy8gbW9kdWxlIGlkID0gMTUxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQ2hlY2tzIGlmIGEgc3RhY2sgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBzdGFja0hhcyhrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RhY2tIYXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zdGFja0hhcy5qc1xuLy8gbW9kdWxlIGlkID0gMTUyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBMaXN0Q2FjaGUgPSByZXF1aXJlKCcuL19MaXN0Q2FjaGUnKSxcbiAgICBNYXAgPSByZXF1aXJlKCcuL19NYXAnKSxcbiAgICBNYXBDYWNoZSA9IHJlcXVpcmUoJy4vX01hcENhY2hlJyk7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgc3RhY2sgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgaWYgKCFNYXAgfHwgKHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSkge1xuICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICB9XG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrU2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fc3RhY2tTZXQuanNcbi8vIG1vZHVsZSBpZCA9IDE1M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgbWVtb2l6ZUNhcHBlZCA9IHJlcXVpcmUoJy4vX21lbW9pemVDYXBwZWQnKTtcblxuLyoqIFVzZWQgdG8gbWF0Y2ggcHJvcGVydHkgbmFtZXMgd2l0aGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlTGVhZGluZ0RvdCA9IC9eXFwuLyxcbiAgICByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICovXG52YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAocmVMZWFkaW5nRG90LnRlc3Qoc3RyaW5nKSkge1xuICAgIHJlc3VsdC5wdXNoKCcnKTtcbiAgfVxuICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3RyaW5nKSB7XG4gICAgcmVzdWx0LnB1c2gocXVvdGUgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsICckMScpIDogKG51bWJlciB8fCBtYXRjaCkpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZ1RvUGF0aDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX3N0cmluZ1RvUGF0aC5qc1xuLy8gbW9kdWxlIGlkID0gMTU0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1NvdXJjZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX3RvU291cmNlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb25zdGFudCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBfLnRpbWVzKDIsIF8uY29uc3RhbnQoeyAnYSc6IDEgfSkpO1xuICpcbiAqIGNvbnNvbGUubG9nKG9iamVjdHMpO1xuICogLy8gPT4gW3sgJ2EnOiAxIH0sIHsgJ2EnOiAxIH1dXG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29uc3RhbnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2NvbnN0YW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxNTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VGbGF0dGVuID0gcmVxdWlyZSgnLi9fYmFzZUZsYXR0ZW4nKTtcblxuLyoqXG4gKiBGbGF0dGVucyBgYXJyYXlgIGEgc2luZ2xlIGxldmVsIGRlZXAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5mbGF0dGVuKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gKiAvLyA9PiBbMSwgMiwgWzMsIFs0XV0sIDVdXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW4oYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIDEpIDogW107XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdHRlbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvZmxhdHRlbi5qc1xuLy8gbW9kdWxlIGlkID0gMTU3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlSGFzSW4gPSByZXF1aXJlKCcuL19iYXNlSGFzSW4nKSxcbiAgICBoYXNQYXRoID0gcmVxdWlyZSgnLi9faGFzUGF0aCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgcGF0aGAgaXMgYSBkaXJlY3Qgb3IgaW5oZXJpdGVkIHByb3BlcnR5IG9mIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IF8uY3JlYXRlKHsgJ2EnOiBfLmNyZWF0ZSh7ICdiJzogMiB9KSB9KTtcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgJ2EnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgJ2EuYicpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaGFzSW4ob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgJ2InKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGhhc0luKG9iamVjdCwgcGF0aCkge1xuICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzUGF0aChvYmplY3QsIHBhdGgsIGJhc2VIYXNJbik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzSW47XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2hhc0luLmpzXG4vLyBtb2R1bGUgaWQgPSAxNThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0FycmF5TGlrZWAgZXhjZXB0IHRoYXQgaXQgYWxzbyBjaGVja3MgaWYgYHZhbHVlYFxuICogaXMgYW4gb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LWxpa2Ugb2JqZWN0LFxuICogIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2VPYmplY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheUxpa2VPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5TGlrZU9iamVjdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNBcnJheUxpa2VPYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDE1OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBnZXRQcm90b3R5cGUgPSByZXF1aXJlKCcuL19nZXRQcm90b3R5cGUnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBpbmZlciB0aGUgYE9iamVjdGAgY29uc3RydWN0b3IuICovXG52YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdCk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC44LjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqIH1cbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpIHx8IGJhc2VHZXRUYWcodmFsdWUpICE9IG9iamVjdFRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGUodmFsdWUpO1xuICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sICdjb25zdHJ1Y3RvcicpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJlxuICAgIGZ1bmNUb1N0cmluZy5jYWxsKEN0b3IpID09IG9iamVjdEN0b3JTdHJpbmc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNQbGFpbk9iamVjdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNQbGFpbk9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTYwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBNYXBDYWNoZSA9IHJlcXVpcmUoJy4vX01hcENhY2hlJyk7XG5cbi8qKiBFcnJvciBtZXNzYWdlIGNvbnN0YW50cy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbWVtb2l6ZXMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuIElmIGByZXNvbHZlcmAgaXNcbiAqIHByb3ZpZGVkLCBpdCBkZXRlcm1pbmVzIHRoZSBjYWNoZSBrZXkgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCBiYXNlZCBvbiB0aGVcbiAqIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uIEJ5IGRlZmF1bHQsIHRoZSBmaXJzdCBhcmd1bWVudFxuICogcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uIGlzIHVzZWQgYXMgdGhlIG1hcCBjYWNoZSBrZXkuIFRoZSBgZnVuY2BcbiAqIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIG1lbW9pemVkIGZ1bmN0aW9uLlxuICpcbiAqICoqTm90ZToqKiBUaGUgY2FjaGUgaXMgZXhwb3NlZCBhcyB0aGUgYGNhY2hlYCBwcm9wZXJ0eSBvbiB0aGUgbWVtb2l6ZWRcbiAqIGZ1bmN0aW9uLiBJdHMgY3JlYXRpb24gbWF5IGJlIGN1c3RvbWl6ZWQgYnkgcmVwbGFjaW5nIHRoZSBgXy5tZW1vaXplLkNhY2hlYFxuICogY29uc3RydWN0b3Igd2l0aCBvbmUgd2hvc2UgaW5zdGFuY2VzIGltcGxlbWVudCB0aGVcbiAqIFtgTWFwYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcHJvcGVydGllcy1vZi10aGUtbWFwLXByb3RvdHlwZS1vYmplY3QpXG4gKiBtZXRob2QgaW50ZXJmYWNlIG9mIGBjbGVhcmAsIGBkZWxldGVgLCBgZ2V0YCwgYGhhc2AsIGFuZCBgc2V0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtyZXNvbHZlcl0gVGhlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGhlIGNhY2hlIGtleS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiB9O1xuICogdmFyIG90aGVyID0geyAnYyc6IDMsICdkJzogNCB9O1xuICpcbiAqIHZhciB2YWx1ZXMgPSBfLm1lbW9pemUoXy52YWx1ZXMpO1xuICogdmFsdWVzKG9iamVjdCk7XG4gKiAvLyA9PiBbMSwgMl1cbiAqXG4gKiB2YWx1ZXMob3RoZXIpO1xuICogLy8gPT4gWzMsIDRdXG4gKlxuICogb2JqZWN0LmEgPSAyO1xuICogdmFsdWVzKG9iamVjdCk7XG4gKiAvLyA9PiBbMSwgMl1cbiAqXG4gKiAvLyBNb2RpZnkgdGhlIHJlc3VsdCBjYWNoZS5cbiAqIHZhbHVlcy5jYWNoZS5zZXQob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWydhJywgJ2InXVxuICpcbiAqIC8vIFJlcGxhY2UgYF8ubWVtb2l6ZS5DYWNoZWAuXG4gKiBfLm1lbW9pemUuQ2FjaGUgPSBXZWFrTWFwO1xuICovXG5mdW5jdGlvbiBtZW1vaXplKGZ1bmMsIHJlc29sdmVyKSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nIHx8IChyZXNvbHZlciAhPSBudWxsICYmIHR5cGVvZiByZXNvbHZlciAhPSAnZnVuY3Rpb24nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgfVxuICB2YXIgbWVtb2l6ZWQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAga2V5ID0gcmVzb2x2ZXIgPyByZXNvbHZlci5hcHBseSh0aGlzLCBhcmdzKSA6IGFyZ3NbMF0sXG4gICAgICAgIGNhY2hlID0gbWVtb2l6ZWQuY2FjaGU7XG5cbiAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiBjYWNoZS5nZXQoa2V5KTtcbiAgICB9XG4gICAgdmFyIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgbWVtb2l6ZWQuY2FjaGUgPSBjYWNoZS5zZXQoa2V5LCByZXN1bHQpIHx8IGNhY2hlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG4gIG1lbW9pemVkLmNhY2hlID0gbmV3IChtZW1vaXplLkNhY2hlIHx8IE1hcENhY2hlKTtcbiAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG4vLyBFeHBvc2UgYE1hcENhY2hlYC5cbm1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcblxubW9kdWxlLmV4cG9ydHMgPSBtZW1vaXplO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9tZW1vaXplLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VQaWNrID0gcmVxdWlyZSgnLi9fYmFzZVBpY2snKSxcbiAgICBmbGF0UmVzdCA9IHJlcXVpcmUoJy4vX2ZsYXRSZXN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2YgdGhlIHBpY2tlZCBgb2JqZWN0YCBwcm9wZXJ0aWVzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBbcGF0aHNdIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gKlxuICogXy5waWNrKG9iamVjdCwgWydhJywgJ2MnXSk7XG4gKiAvLyA9PiB7ICdhJzogMSwgJ2MnOiAzIH1cbiAqL1xudmFyIHBpY2sgPSBmbGF0UmVzdChmdW5jdGlvbihvYmplY3QsIHBhdGhzKSB7XG4gIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHt9IDogYmFzZVBpY2sob2JqZWN0LCBwYXRocyk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBwaWNrO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9waWNrLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjEzLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRpbWVzKDIsIF8uc3R1YkZhbHNlKTtcbiAqIC8vID0+IFtmYWxzZSwgZmFsc2VdXG4gKi9cbmZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0dWJGYWxzZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvc3R1YkZhbHNlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNvcHlPYmplY3QgPSByZXF1aXJlKCcuL19jb3B5T2JqZWN0JyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi9rZXlzSW4nKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgcGxhaW4gb2JqZWN0IGZsYXR0ZW5pbmcgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nXG4gKiBrZXllZCBwcm9wZXJ0aWVzIG9mIGB2YWx1ZWAgdG8gb3duIHByb3BlcnRpZXMgb2YgdGhlIHBsYWluIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBwbGFpbiBvYmplY3QuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIG5ldyBGb28pO1xuICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gKlxuICogXy5hc3NpZ24oeyAnYSc6IDEgfSwgXy50b1BsYWluT2JqZWN0KG5ldyBGb28pKTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XG4gKi9cbmZ1bmN0aW9uIHRvUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgcmV0dXJuIGNvcHlPYmplY3QodmFsdWUsIGtleXNJbih2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvUGxhaW5PYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL3RvUGxhaW5PYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDE2NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZVRvU3RyaW5nID0gcmVxdWlyZSgnLi9fYmFzZVRvU3RyaW5nJyk7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZy4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGZvciBgbnVsbGBcbiAqIGFuZCBgdW5kZWZpbmVkYCB2YWx1ZXMuIFRoZSBzaWduIG9mIGAtMGAgaXMgcHJlc2VydmVkLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b1N0cmluZyhudWxsKTtcbiAqIC8vID0+ICcnXG4gKlxuICogXy50b1N0cmluZygtMCk7XG4gKiAvLyA9PiAnLTAnXG4gKlxuICogXy50b1N0cmluZyhbMSwgMiwgM10pO1xuICogLy8gPT4gJzEsMiwzJ1xuICovXG5mdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogYmFzZVRvU3RyaW5nKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1N0cmluZztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvdG9TdHJpbmcuanNcbi8vIG1vZHVsZSBpZCA9IDE2NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/src/xml/PosBarcode.xml b/pos_add_product_webcam_barcode/static/src/xml/PosBarcode.xml new file mode 100644 index 000000000..d21aa18d0 --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/xml/PosBarcode.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/views/assets.xml b/pos_add_product_webcam_barcode/views/assets.xml new file mode 100644 index 000000000..91307a524 --- /dev/null +++ b/pos_add_product_webcam_barcode/views/assets.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file