New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ngx-intl-tel-input

Package Overview
Dependencies
Maintainers
3
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-intl-tel-input - npm Package Compare versions

Comparing version 2.4.2 to 2.4.3

ngx-intl-tel-input-2.4.3.tgz

2

bundles/ngx-intl-tel-input.umd.min.js

@@ -15,3 +15,3 @@ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("google-libphonenumber"),require("@angular/forms"),require("ngx-bootstrap/dropdown"),require("ngx-bootstrap/tooltip"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-intl-tel-input",["exports","@angular/core","google-libphonenumber","@angular/forms","ngx-bootstrap/dropdown","ngx-bootstrap/tooltip","@angular/common"],e):e((t=t||self)["ngx-intl-tel-input"]={},t.ng.core,t["^3"][2][1],t.ng.forms,t.dropdown,t.tooltip,t.ng.common)}(this,(function(t,e,n,a,o,r,i){"use strict";

and limitations under the License.
***************************************************************************** */function u(t,e,n,a){var o,r=arguments.length,i=r<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var u=t.length-1;u>=0;u--)(o=t[u])&&(i=(r<3?o(i):r>3?o(e,n,i):o(e,n))||i);return r>3&&i&&Object.defineProperty(e,n,i),i}function s(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}var l,d=function(){function t(){}return t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=u([e.Injectable({providedIn:"root"}),s("design:paramtypes",[])],t)}();(l=t.CountryISO||(t.CountryISO={})).Afghanistan="af",l.Albania="al",l.Algeria="dz",l.AmericanSamoa="as",l.Andorra="ad",l.Angola="ao",l.Anguilla="ai",l.AntiguaAndBarbuda="ag",l.Argentina="ar",l.Armenia="am",l.Aruba="aw",l.Australia="au",l.Austria="at",l.Azerbaijan="az",l.Bahamas="bs",l.Bahrain="bh",l.Bangladesh="bd",l.Barbados="bb",l.Belarus="by",l.Belgium="be",l.Belize="bz",l.Benin="bj",l.Bermuda="bm",l.Bhutan="bt",l.Bolivia="bo",l.BosniaAndHerzegovina="ba",l.Botswana="bw",l.Brazil="br",l.BritishIndianOceanTerritory="io",l.BritishVirginIslands="vg",l.Brunei="bn",l.Bulgaria="bg",l.BurkinaFaso="bf",l.Burundi="bi",l.Cambodia="kh",l.Cameroon="cm",l.Canada="ca",l.CapeVerde="cv",l.CaribbeanNetherlands="bq",l.CaymanIslands="ky",l.CentralAfricanRepublic="cf",l.Chad="td",l.Chile="cl",l.China="cn",l.ChristmasIsland="cx",l.Cocos="cc",l.Colombia="co",l.Comoros="km",l.CongoDRCJamhuriYaKidemokrasiaYaKongo="cd",l.CongoRepublicCongoBrazzaville="cg",l.CookIslands="ck",l.CostaRica="cr",l["CôteDIvoire"]="ci",l.Croatia="hr",l.Cuba="cu",l["Curaçao"]="cw",l.Cyprus="cy",l.CzechRepublic="cz",l.Denmark="dk",l.Djibouti="dj",l.Dominica="dm",l.DominicanRepublic="do",l.Ecuador="ec",l.Egypt="eg",l.ElSalvador="sv",l.EquatorialGuinea="gq",l.Eritrea="er",l.Estonia="ee",l.Ethiopia="et",l.FalklandIslands="fk",l.FaroeIslands="fo",l.Fiji="fj",l.Finland="fi",l.France="fr",l.FrenchGuiana="gf",l.FrenchPolynesia="pf",l.Gabon="ga",l.Gambia="gm",l.Georgia="ge",l.Germany="de",l.Ghana="gh",l.Gibraltar="gi",l.Greece="gr",l.Greenland="gl",l.Grenada="gd",l.Guadeloupe="gp",l.Guam="gu",l.Guatemala="gt",l.Guernsey="gg",l.Guinea="gn",l.GuineaBissau="gw",l.Guyana="gy",l.Haiti="ht",l.Honduras="hn",l.HongKong="hk",l.Hungary="hu",l.Iceland="is",l.India="in",l.Indonesia="id",l.Iran="ir",l.Iraq="iq",l.Ireland="ie",l.IsleOfMan="im",l.Israel="il",l.Italy="it",l.Jamaica="jm",l.Japan="jp",l.Jersey="je",l.Jordan="jo",l.Kazakhstan="kz",l.Kenya="ke",l.Kiribati="ki",l.Kosovo="xk",l.Kuwait="kw",l.Kyrgyzstan="kg",l.Laos="la",l.Latvia="lv",l.Lebanon="lb",l.Lesotho="ls",l.Liberia="lr",l.Libya="ly",l.Liechtenstein="li",l.Lithuania="lt",l.Luxembourg="lu",l.Macau="mo",l.Macedonia="mk",l.Madagascar="mg",l.Malawi="mw",l.Malaysia="my",l.Maldives="mv",l.Mali="ml",l.Malta="mt",l.MarshallIslands="mh",l.Martinique="mq",l.Mauritania="mr",l.Mauritius="mu",l.Mayotte="yt",l.Mexico="mx",l.Micronesia="fm",l.Moldova="md",l.Monaco="mc",l.Mongolia="mn",l.Montenegro="me",l.Montserrat="ms",l.Morocco="ma",l.Mozambique="mz",l.Myanmar="mm",l.Namibia="na",l.Nauru="nr",l.Nepal="np",l.Netherlands="nl",l.NewCaledonia="nc",l.NewZealand="nz",l.Nicaragua="ni",l.Niger="ne",l.Nigeria="ng",l.Niue="nu",l.NorfolkIsland="nf",l.NorthKorea="kp",l.NorthernMarianaIslands="mp",l.Norway="no",l.Oman="om",l.Pakistan="pk",l.Palau="pw",l.Palestine="ps",l.Panama="pa",l.PapuaNewGuinea="pg",l.Paraguay="py",l.Peru="pe",l.Philippines="ph",l.Poland="pl",l.Portugal="pt",l.PuertoRico="pr",l.Qatar="qa",l["Réunion"]="re",l.Romania="ro",l.Russia="ru",l.Rwanda="rw",l["SaintBarthélemy"]="bl",l.SaintHelena="sh",l.SaintKittsAndNevis="kn",l.SaintLucia="lc",l.SaintMartin="mf",l.SaintPierreAndMiquelon="pm",l.SaintVincentAndTheGrenadines="vc",l.Samoa="ws",l.SanMarino="sm",l["SãoToméAndPríncipe"]="st",l.SaudiArabia="sa",l.Senegal="sn",l.Serbia="rs",l.Seychelles="sc",l.SierraLeone="sl",l.Singapore="sg",l.SintMaarten="sx",l.Slovakia="sk",l.Slovenia="si",l.SolomonIslands="sb",l.Somalia="so",l.SouthAfrica="za",l.SouthKorea="kr",l.SouthSudan="ss",l.Spain="es",l.SriLanka="lk",l.Sudan="sd",l.Suriname="sr",l.SvalbardAndJanMayen="sj",l.Swaziland="sz",l.Sweden="se",l.Switzerland="ch",l.Syria="sy",l.Taiwan="tw",l.Tajikistan="tj",l.Tanzania="tz",l.Thailand="th",l.TimorLeste="tl",l.Togo="tg",l.Tokelau="tk",l.Tonga="to",l.TrinidadAndTobago="tt",l.Tunisia="tn",l.Turkey="tr",l.Turkmenistan="tm",l.TurksAndCaicosIslands="tc",l.Tuvalu="tv",l.USVirginIslands="vi",l.Uganda="ug",l.Ukraine="ua",l.UnitedArabEmirates="ae",l.UnitedKingdom="gb",l.UnitedStates="us",l.Uruguay="uy",l.Uzbekistan="uz",l.Vanuatu="vu",l.VaticanCity="va",l.Venezuela="ve",l.Vietnam="vn",l.WallisAndFutuna="wf",l.WesternSahara="eh",l.Yemen="ye",l.Zambia="zm",l.Zimbabwe="zw",l["ÅlandIslands"]="ax";var y,C,c=function(){function n(){this.allCountries=[["Afghanistan (‫افغانستان‬‎)",t.CountryISO.Afghanistan,"93"],["Albania (Shqipëri)",t.CountryISO.Albania,"355"],["Algeria (‫الجزائر‬‎)",t.CountryISO.Algeria,"213"],["American Samoa","as","1",1,["684"]],["Andorra",t.CountryISO.Andorra,"376"],["Angola",t.CountryISO.Angola,"244"],["Anguilla","ai","1",1,["264"]],["Antigua and Barbuda","ag","1",1,["268"]],["Argentina",t.CountryISO.Argentina,"54"],["Armenia (Հայաստան)",t.CountryISO.Armenia,"374"],["Aruba",t.CountryISO.Aruba,"297"],["Australia",t.CountryISO.Australia,"61",0],["Austria (Österreich)",t.CountryISO.Austria,"43"],["Azerbaijan (Azərbaycan)",t.CountryISO.Azerbaijan,"994"],["Bahamas","bs","1",1,["242"]],["Bahrain (‫البحرين‬‎)",t.CountryISO.Bahrain,"973"],["Bangladesh (বাংলাদেশ)",t.CountryISO.Bangladesh,"880"],["Barbados","bb","1",1,["246"]],["Belarus (Беларусь)",t.CountryISO.Belarus,"375"],["Belgium (België)",t.CountryISO.Belgium,"32"],["Belize",t.CountryISO.Belize,"501"],["Benin (Bénin)",t.CountryISO.Benin,"229"],["Bermuda","bm","1",1,["441"]],["Bhutan (འབྲུག)",t.CountryISO.Bhutan,"975"],["Bolivia",t.CountryISO.Bolivia,"591"],["Bosnia and Herzegovina (Босна и Херцеговина)",t.CountryISO.BosniaAndHerzegovina,"387"],["Botswana",t.CountryISO.Botswana,"267"],["Brazil (Brasil)",t.CountryISO.Brazil,"55"],["British Indian Ocean Territory",t.CountryISO.BritishIndianOceanTerritory,"246"],["British Virgin Islands","vg","1",1,["284"]],["Brunei",t.CountryISO.Brunei,"673"],["Bulgaria (България)",t.CountryISO.Bulgaria,"359"],["Burkina Faso",t.CountryISO.BurkinaFaso,"226"],["Burundi (Uburundi)",t.CountryISO.Burundi,"257"],["Cambodia (កម្ពុជា)",t.CountryISO.Cambodia,"855"],["Cameroon (Cameroun)",t.CountryISO.Cameroon,"237"],["Canada",t.CountryISO.Canada,"1",1,["204","226","236","249","250","289","306","343","365","387","403","416","418","431","437","438","450","506","514","519","548","579","581","587","604","613","639","647","672","705","709","742","778","780","782","807","819","825","867","873","902","905"]],["Cape Verde (Kabu Verdi)",t.CountryISO.CapeVerde,"238"],["Caribbean Netherlands",t.CountryISO.CaribbeanNetherlands,"599",1],["Cayman Islands","ky","1",1,["345"]],["Central African Republic (République centrafricaine)",t.CountryISO.CentralAfricanRepublic,"236"],["Chad (Tchad)",t.CountryISO.Chad,"235"],["Chile",t.CountryISO.Chile,"56"],["China (中国)",t.CountryISO.China,"86"],["Christmas Island",t.CountryISO.ChristmasIsland,"61",2],["Cocos (Keeling) Islands",t.CountryISO.Cocos,"61",1],["Colombia",t.CountryISO.Colombia,"57"],["Comoros (‫جزر القمر‬‎)",t.CountryISO.Comoros,"269"],["Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",t.CountryISO.CongoDRCJamhuriYaKidemokrasiaYaKongo,"243"],["Congo (Republic) (Congo-Brazzaville)",t.CountryISO.CongoRepublicCongoBrazzaville,"242"],["Cook Islands",t.CountryISO.CookIslands,"682"],["Costa Rica",t.CountryISO.CostaRica,"506"],["Côte d’Ivoire",t.CountryISO.CôteDIvoire,"225"],["Croatia (Hrvatska)",t.CountryISO.Croatia,"385"],["Cuba",t.CountryISO.Cuba,"53"],["Curaçao",t.CountryISO.Curaçao,"599",0],["Cyprus (Κύπρος)",t.CountryISO.Cyprus,"357"],["Czech Republic (Česká republika)",t.CountryISO.CzechRepublic,"420"],["Denmark (Danmark)",t.CountryISO.Denmark,"45"],["Djibouti",t.CountryISO.Djibouti,"253"],["Dominica",t.CountryISO.Dominica,"1767"],["Dominican Republic (República Dominicana)",t.CountryISO.DominicanRepublic,"1",2,["809","829","849"]],["Ecuador",t.CountryISO.Ecuador,"593"],["Egypt (‫مصر‬‎)",t.CountryISO.Egypt,"20"],["El Salvador",t.CountryISO.ElSalvador,"503"],["Equatorial Guinea (Guinea Ecuatorial)",t.CountryISO.EquatorialGuinea,"240"],["Eritrea",t.CountryISO.Eritrea,"291"],["Estonia (Eesti)",t.CountryISO.Estonia,"372"],["Ethiopia",t.CountryISO.Ethiopia,"251"],["Falkland Islands (Islas Malvinas)",t.CountryISO.FalklandIslands,"500"],["Faroe Islands (Føroyar)",t.CountryISO.FaroeIslands,"298"],["Fiji",t.CountryISO.Fiji,"679"],["Finland (Suomi)",t.CountryISO.Finland,"358",0],["France",t.CountryISO.France,"33"],["French Guiana (Guyane française)",t.CountryISO.FrenchGuiana,"594"],["French Polynesia (Polynésie française)",t.CountryISO.FrenchPolynesia,"689"],["Gabon",t.CountryISO.Gabon,"241"],["Gambia",t.CountryISO.Gambia,"220"],["Georgia (საქართველო)",t.CountryISO.Georgia,"995"],["Germany (Deutschland)",t.CountryISO.Germany,"49"],["Ghana (Gaana)",t.CountryISO.Ghana,"233"],["Gibraltar",t.CountryISO.Gibraltar,"350"],["Greece (Ελλάδα)",t.CountryISO.Greece,"30"],["Greenland (Kalaallit Nunaat)",t.CountryISO.Greenland,"299"],["Grenada",t.CountryISO.Grenada,"1473"],["Guadeloupe",t.CountryISO.Guadeloupe,"590",0],["Guam","gu","1",1,["671"]],["Guatemala",t.CountryISO.Guatemala,"502"],["Guernsey",t.CountryISO.Guernsey,"44",1,[1481]],["Guinea (Guinée)",t.CountryISO.Guinea,"224"],["Guinea-Bissau (Guiné Bissau)",t.CountryISO.GuineaBissau,"245"],["Guyana",t.CountryISO.Guyana,"592"],["Haiti",t.CountryISO.Haiti,"509"],["Honduras",t.CountryISO.Honduras,"504"],["Hong Kong (香港)",t.CountryISO.HongKong,"852"],["Hungary (Magyarország)",t.CountryISO.Hungary,"36"],["Iceland (Ísland)",t.CountryISO.Iceland,"354"],["India (भारत)",t.CountryISO.India,"91"],["Indonesia",t.CountryISO.Indonesia,"62"],["Iran (‫ایران‬‎)",t.CountryISO.Iran,"98"],["Iraq (‫العراق‬‎)",t.CountryISO.Iraq,"964"],["Ireland",t.CountryISO.Ireland,"353"],["Isle of Man",t.CountryISO.IsleOfMan,"44",2,[1624]],["Israel (‫ישראל‬‎)",t.CountryISO.Israel,"972"],["Italy (Italia)",t.CountryISO.Italy,"39",0],["Jamaica","jm","1",1,["876"]],["Japan (日本)",t.CountryISO.Japan,"81"],["Jersey",t.CountryISO.Jersey,"44",3,[1534]],["Jordan (‫الأردن‬‎)",t.CountryISO.Jordan,"962"],["Kazakhstan (Казахстан)",t.CountryISO.Kazakhstan,"7",1],["Kenya",t.CountryISO.Kenya,"254"],["Kiribati",t.CountryISO.Kiribati,"686"],["Kosovo",t.CountryISO.Kosovo,"383"],["Kuwait (‫الكويت‬‎)",t.CountryISO.Kuwait,"965"],["Kyrgyzstan (Кыргызстан)",t.CountryISO.Kyrgyzstan,"996"],["Laos (ລາວ)",t.CountryISO.Laos,"856"],["Latvia (Latvija)",t.CountryISO.Latvia,"371"],["Lebanon (‫لبنان‬‎)",t.CountryISO.Lebanon,"961"],["Lesotho",t.CountryISO.Lesotho,"266"],["Liberia",t.CountryISO.Liberia,"231"],["Libya (‫ليبيا‬‎)",t.CountryISO.Libya,"218"],["Liechtenstein",t.CountryISO.Liechtenstein,"423"],["Lithuania (Lietuva)",t.CountryISO.Lithuania,"370"],["Luxembourg",t.CountryISO.Luxembourg,"352"],["Macau (澳門)",t.CountryISO.Macau,"853"],["Macedonia (FYROM) (Македонија)",t.CountryISO.Macedonia,"389"],["Madagascar (Madagasikara)",t.CountryISO.Madagascar,"261"],["Malawi",t.CountryISO.Malawi,"265"],["Malaysia",t.CountryISO.Malaysia,"60"],["Maldives",t.CountryISO.Maldives,"960"],["Mali",t.CountryISO.Mali,"223"],["Malta",t.CountryISO.Malta,"356"],["Marshall Islands",t.CountryISO.MarshallIslands,"692"],["Martinique",t.CountryISO.Martinique,"596"],["Mauritania (‫موريتانيا‬‎)",t.CountryISO.Mauritania,"222"],["Mauritius (Moris)",t.CountryISO.Mauritius,"230"],["Mayotte",t.CountryISO.Mayotte,"262",1],["Mexico (México)",t.CountryISO.Mexico,"52"],["Micronesia",t.CountryISO.Micronesia,"691"],["Moldova (Republica Moldova)",t.CountryISO.Moldova,"373"],["Monaco",t.CountryISO.Monaco,"377"],["Mongolia (Монгол)",t.CountryISO.Mongolia,"976"],["Montenegro (Crna Gora)",t.CountryISO.Montenegro,"382"],["Montserrat","ms","1",1,["664"]],["Morocco (‫المغرب‬‎)",t.CountryISO.Morocco,"212",0],["Mozambique (Moçambique)",t.CountryISO.Mozambique,"258"],["Myanmar (Burma) (မြန်မာ)",t.CountryISO.Myanmar,"95"],["Namibia (Namibië)",t.CountryISO.Namibia,"264"],["Nauru",t.CountryISO.Nauru,"674"],["Nepal (नेपाल)",t.CountryISO.Nepal,"977"],["Netherlands (Nederland)",t.CountryISO.Netherlands,"31"],["New Caledonia (Nouvelle-Calédonie)",t.CountryISO.NewCaledonia,"687"],["New Zealand",t.CountryISO.NewZealand,"64"],["Nicaragua",t.CountryISO.Nicaragua,"505"],["Niger (Nijar)",t.CountryISO.Niger,"227"],["Nigeria",t.CountryISO.Nigeria,"234"],["Niue",t.CountryISO.Niue,"683"],["Norfolk Island",t.CountryISO.NorfolkIsland,"672"],["North Korea (조선 민주주의 인민 공화국)",t.CountryISO.NorthKorea,"850"],["Northern Mariana Islands",t.CountryISO.NorthernMarianaIslands,"1670"],["Norway (Norge)",t.CountryISO.Norway,"47",0],["Oman (‫عُمان‬‎)",t.CountryISO.Oman,"968"],["Pakistan (‫پاکستان‬‎)",t.CountryISO.Pakistan,"92"],["Palau",t.CountryISO.Palau,"680"],["Palestine (‫فلسطين‬‎)",t.CountryISO.Palestine,"970"],["Panama (Panamá)",t.CountryISO.Panama,"507"],["Papua New Guinea",t.CountryISO.PapuaNewGuinea,"675"],["Paraguay",t.CountryISO.Paraguay,"595"],["Peru (Perú)",t.CountryISO.Peru,"51"],["Philippines",t.CountryISO.Philippines,"63"],["Poland (Polska)",t.CountryISO.Poland,"48"],["Portugal",t.CountryISO.Portugal,"351"],["Puerto Rico",t.CountryISO.PuertoRico,"1",3,["787","939"]],["Qatar (‫قطر‬‎)",t.CountryISO.Qatar,"974"],["Réunion (La Réunion)",t.CountryISO.Réunion,"262",0],["Romania (România)",t.CountryISO.Romania,"40"],["Russia (Россия)",t.CountryISO.Russia,"7",0],["Rwanda",t.CountryISO.Rwanda,"250"],["Saint Barthélemy (Saint-Barthélemy)",t.CountryISO.SaintBarthélemy,"590",1],["Saint Helena",t.CountryISO.SaintHelena,"290"],["Saint Kitts and Nevis",t.CountryISO.SaintKittsAndNevis,"1869"],["Saint Lucia","lc","1",1,["758"]],["Saint Martin (Saint-Martin (partie française))",t.CountryISO.SaintMartin,"590",2],["Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)",t.CountryISO.SaintPierreAndMiquelon,"508"],["Saint Vincent and the Grenadines","vc","1",1,["784"]],["Samoa",t.CountryISO.Samoa,"685"],["San Marino",t.CountryISO.SanMarino,"378"],["São Tomé and Príncipe (São Tomé e Príncipe)",t.CountryISO.SãoToméAndPríncipe,"239"],["Saudi Arabia (‫المملكة العربية السعودية‬‎)",t.CountryISO.SaudiArabia,"966"],["Senegal (Sénégal)",t.CountryISO.Senegal,"221"],["Serbia (Србија)",t.CountryISO.Serbia,"381"],["Seychelles",t.CountryISO.Seychelles,"248"],["Sierra Leone",t.CountryISO.SierraLeone,"232"],["Singapore",t.CountryISO.Singapore,"65"],["Sint Maarten","sx","1",1,["721"]],["Slovakia (Slovensko)",t.CountryISO.Slovakia,"421"],["Slovenia (Slovenija)",t.CountryISO.Slovenia,"386"],["Solomon Islands",t.CountryISO.SolomonIslands,"677"],["Somalia (Soomaaliya)",t.CountryISO.Somalia,"252"],["South Africa",t.CountryISO.SouthAfrica,"27"],["South Korea (대한민국)",t.CountryISO.SouthKorea,"82"],["South Sudan (‫جنوب السودان‬‎)",t.CountryISO.SouthSudan,"211"],["Spain (España)",t.CountryISO.Spain,"34"],["Sri Lanka (ශ්‍රී ලංකාව)",t.CountryISO.SriLanka,"94"],["Sudan (‫السودان‬‎)",t.CountryISO.Sudan,"249"],["Suriname",t.CountryISO.Suriname,"597"],["Svalbard and Jan Mayen",t.CountryISO.SvalbardAndJanMayen,"47",1],["Swaziland",t.CountryISO.Swaziland,"268"],["Sweden (Sverige)",t.CountryISO.Sweden,"46"],["Switzerland (Schweiz)",t.CountryISO.Switzerland,"41"],["Syria (‫سوريا‬‎)",t.CountryISO.Syria,"963"],["Taiwan (台灣)",t.CountryISO.Taiwan,"886"],["Tajikistan",t.CountryISO.Tajikistan,"992"],["Tanzania",t.CountryISO.Tanzania,"255"],["Thailand (ไทย)",t.CountryISO.Thailand,"66"],["Timor-Leste",t.CountryISO.TimorLeste,"670"],["Togo",t.CountryISO.Togo,"228"],["Tokelau",t.CountryISO.Tokelau,"690"],["Tonga",t.CountryISO.Tonga,"676"],["Trinidad and Tobago","tt","1",1,["868"]],["Tunisia (‫تونس‬‎)",t.CountryISO.Tunisia,"216"],["Turkey (Türkiye)",t.CountryISO.Turkey,"90"],["Turkmenistan",t.CountryISO.Turkmenistan,"993"],["Turks and Caicos Islands",t.CountryISO.TurksAndCaicosIslands,"1649"],["Tuvalu",t.CountryISO.Tuvalu,"688"],["U.S. Virgin Islands","vi","1",1,["340"]],["Uganda",t.CountryISO.Uganda,"256"],["Ukraine (Україна)",t.CountryISO.Ukraine,"380"],["United Arab Emirates (‫الإمارات العربية المتحدة‬‎)",t.CountryISO.UnitedArabEmirates,"971"],["United Kingdom",t.CountryISO.UnitedKingdom,"44",0],["United States",t.CountryISO.UnitedStates,"1",0],["Uruguay",t.CountryISO.Uruguay,"598"],["Uzbekistan (Oʻzbekiston)",t.CountryISO.Uzbekistan,"998"],["Vanuatu",t.CountryISO.Vanuatu,"678"],["Vatican City (Città del Vaticano)",t.CountryISO.VaticanCity,"39",1],["Venezuela",t.CountryISO.Venezuela,"58"],["Vietnam (Việt Nam)",t.CountryISO.Vietnam,"84"],["Wallis and Futuna",t.CountryISO.WallisAndFutuna,"681"],["Western Sahara (‫الصحراء الغربية‬‎)",t.CountryISO.WesternSahara,"212",1],["Yemen (‫اليمن‬‎)",t.CountryISO.Yemen,"967"],["Zambia",t.CountryISO.Zambia,"260"],["Zimbabwe",t.CountryISO.Zimbabwe,"263"],["Åland Islands",t.CountryISO.ÅlandIslands,"358",1]]}return n=u([e.Injectable()],n)}();(y=t.SearchCountryField||(t.SearchCountryField={})).DialCode="dialCode",y.Iso2="iso2",y.Name="name",y.All="all",(C=t.TooltipLabel||(t.TooltipLabel={})).Name="name",C.Iso2="iso2";var p=function(t){if(t.value){var e=t.nativeElement,a=e?e.querySelector('input[type="tel"]'):void 0;if(a){a.id;var o=a.getAttribute("validation");if("true"===o){var r=t.errors&&!0===t.errors.required,i={validatePhoneNumber:{valid:!1}};a.setCustomValidity("Invalid field.");var u=void 0;try{u=n.PhoneNumberUtil.getInstance().parse(t.value.number,t.value.countryCode)}catch(t){if(!0===r)return i;a.setCustomValidity("")}if(t.value){if(!u)return i;if(!n.PhoneNumberUtil.getInstance().isValidNumberForRegion(u,t.value.countryCode))return i;a.setCustomValidity("")}}else"false"===o&&(a.setCustomValidity(""),t.clearValidators())}}},h=p,S=function(){function o(a){this.countryCodeData=a,this.value="",this.preferredCountries=[],this.enablePlaceholder=!0,this.cssClass="form-control",this.onlyCountries=[],this.enableAutoCountrySelect=!0,this.searchCountryFlag=!1,this.searchCountryField=[t.SearchCountryField.All],this.searchCountryPlaceholder="Search Country",this.maxLength="",this.selectFirstCountry=!0,this.phoneValidation=!0,this.inputId="phone",this.separateDialCode=!1,this.countryChange=new e.EventEmitter,this.selectedCountry={areaCodes:void 0,dialCode:"",flagClass:"",iso2:"",name:"",placeHolder:"",priority:0},this.phoneNumber="",this.allCountries=[],this.preferredCountriesInDropDown=[],this.phoneUtil=n.PhoneNumberUtil.getInstance(),this.disabled=!1,this.errors=["Phone number is required."],this.countrySearchText="",this.onTouched=function(){},this.propagateChange=function(t){}}var r;return r=o,o.prototype.ngOnInit=function(){this.init()},o.prototype.ngOnChanges=function(t){var e=t.selectedCountryISO;this.allCountries&&e&&e.currentValue!==e.previousValue&&this.getSelectedCountry(),t.preferredCountries&&this.getPreferredCountries(),this.checkSeparateDialCodeStyle()},o.prototype.init=function(){var t=this;this.fetchCountryData(),this.preferredCountries.length&&this.getPreferredCountries(),this.onlyCountries.length&&(this.allCountries=this.allCountries.filter((function(e){return t.onlyCountries.includes(e.iso2)}))),this.selectFirstCountry&&(this.preferredCountriesInDropDown.length?this.setSelectedCountry(this.preferredCountriesInDropDown[0]):this.setSelectedCountry(this.allCountries[0])),this.getSelectedCountry(),this.checkSeparateDialCodeStyle()},o.prototype.getPreferredCountries=function(){var t=this;this.preferredCountries.length&&(this.preferredCountriesInDropDown=[],this.preferredCountries.forEach((function(e){var n=t.allCountries.filter((function(t){return t.iso2===e}));t.preferredCountriesInDropDown.push(n[0])})))},o.prototype.getSelectedCountry=function(){var t=this;this.selectedCountryISO&&(this.selectedCountry=this.allCountries.find((function(e){return e.iso2.toLowerCase()===t.selectedCountryISO.toLowerCase()})),this.selectedCountry&&(this.phoneNumber?this.onPhoneNumberChange():this.propagateChange(null)))},o.prototype.setSelectedCountry=function(t){this.selectedCountry=t,this.countryChange.emit(t)},o.prototype.searchCountry=function(){var e=this;if(this.countrySearchText){var n=this.countrySearchText.toLowerCase(),a=this.allCountries.filter((function(a){if(e.searchCountryField.indexOf(t.SearchCountryField.All)>-1){if(a.iso2.toLowerCase().startsWith(n))return a;if(a.name.toLowerCase().startsWith(n))return a;if(a.dialCode.startsWith(e.countrySearchText))return a}else{if(e.searchCountryField.indexOf(t.SearchCountryField.Iso2)>-1&&a.iso2.toLowerCase().startsWith(n))return a;if(e.searchCountryField.indexOf(t.SearchCountryField.Name)>-1&&a.name.toLowerCase().startsWith(n))return a;if(e.searchCountryField.indexOf(t.SearchCountryField.DialCode)>-1&&a.dialCode.startsWith(e.countrySearchText))return a}}));if(a.length>0){var o=this.countryList.nativeElement.querySelector("#"+a[0].iso2);o&&o.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}this.checkSeparateDialCodeStyle()}else this.countryList.nativeElement.querySelector(".country-list li").scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},o.prototype.onPhoneNumberChange=function(){var t;this.value=this.phoneNumber;try{t=this.phoneUtil.parse(this.phoneNumber,this.selectedCountry.iso2.toUpperCase())}catch(t){}var e=this.selectedCountry.iso2;if(this.enableAutoCountrySelect&&(e=t&&t.getCountryCode()?this.getCountryIsoCode(t.getCountryCode(),t):this.selectedCountry.iso2)&&e!==this.selectedCountry.iso2){var a=this.allCountries.find((function(t){return t.iso2===e}));a&&(this.selectedCountry=a)}if(e=e||this.selectedCountry.iso2,this.checkSeparateDialCodeStyle(),this.value){var o=t?this.phoneUtil.format(t,n.PhoneNumberFormat.INTERNATIONAL):"";this.separateDialCode&&o&&(this.value=this.removeDialCode(o)),this.propagateChange({number:this.value,internationalNumber:o,nationalNumber:t?this.phoneUtil.format(t,n.PhoneNumberFormat.NATIONAL):"",e164Number:t?this.phoneUtil.format(t,n.PhoneNumberFormat.E164):"",countryCode:e.toUpperCase(),dialCode:"+"+this.selectedCountry.dialCode})}else this.propagateChange(null)},o.prototype.onCountrySelect=function(t,e){if(this.setSelectedCountry(t),this.checkSeparateDialCodeStyle(),this.phoneNumber&&this.phoneNumber.length>0){this.value=this.phoneNumber;var a=void 0;try{a=this.phoneUtil.parse(this.phoneNumber,this.selectedCountry.iso2.toUpperCase())}catch(t){}var o=a?this.phoneUtil.format(a,n.PhoneNumberFormat.INTERNATIONAL):"";this.separateDialCode&&o&&(this.value=this.removeDialCode(o)),this.propagateChange({number:this.value,internationalNumber:o,nationalNumber:a?this.phoneUtil.format(a,n.PhoneNumberFormat.NATIONAL):"",e164Number:a?this.phoneUtil.format(a,n.PhoneNumberFormat.E164):"",countryCode:this.selectedCountry.iso2.toUpperCase(),dialCode:"+"+this.selectedCountry.dialCode})}else this.propagateChange(null);e.focus()},o.prototype.onInputKeyPress=function(t){/[0-9\+\-\ ]/.test(t.key)||t.ctrlKey&&/[axcv]/.test(t.key)||["ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End","Insert","Delete","Backspace"].includes(t.key)||t.preventDefault()},o.prototype.fetchCountryData=function(){var t=this;this.allCountries=[],this.countryCodeData.allCountries.forEach((function(e){var n={name:e[0].toString(),iso2:e[1].toString(),dialCode:e[2].toString(),priority:+e[3]||0,areaCodes:e[4]||void 0,flagClass:e[1].toString().toLocaleLowerCase(),placeHolder:""};t.enablePlaceholder&&(n.placeHolder=t.getPhoneNumberPlaceHolder(n.iso2.toUpperCase())),t.allCountries.push(n)}))},o.prototype.getPhoneNumberPlaceHolder=function(t){try{return this.phoneUtil.format(this.phoneUtil.getExampleNumber(t),n.PhoneNumberFormat.INTERNATIONAL)}catch(t){return t}},o.prototype.registerOnChange=function(t){this.propagateChange=t},o.prototype.registerOnTouched=function(t){this.onTouched=t},o.prototype.setDisabledState=function(t){this.disabled=t},o.prototype.writeValue=function(t){var e=this;void 0===t&&this.init(),this.phoneNumber=t,setTimeout((function(){e.onPhoneNumberChange()}),1)},o.prototype.getCountryIsoCode=function(t,e){var n=e.values_[2].toString(),a=this.allCountries.filter((function(e){return e.dialCode===t.toString()})),o=a.find((function(t){return void 0===t.areaCodes})),r=a.filter((function(t){return void 0!==t.areaCodes})),i=o?o.iso2:void 0;return r.forEach((function(t){t.areaCodes.forEach((function(e){n.startsWith(e)&&(i=t.iso2)}))})),i},o.prototype.separateDialCodePlaceHolder=function(t){return this.removeDialCode(t)},o.prototype.removeDialCode=function(t){return this.separateDialCode&&t&&(t=t.substr(t.indexOf(" ")+1)),t},o.prototype.checkSeparateDialCodeStyle=function(){if(this.separateDialCode&&this.selectedCountry){var t=this.selectedCountry.dialCode;this.separateDialCodeClass="separate-dial-code iti-sdc-"+(t.length+1)}else this.separateDialCodeClass=""},o.ctorParameters=function(){return[{type:c}]},u([e.Input(),s("design:type",Object)],o.prototype,"value",void 0),u([e.Input(),s("design:type",Array)],o.prototype,"preferredCountries",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"enablePlaceholder",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"cssClass",void 0),u([e.Input(),s("design:type",Array)],o.prototype,"onlyCountries",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"enableAutoCountrySelect",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"searchCountryFlag",void 0),u([e.Input(),s("design:type",Array)],o.prototype,"searchCountryField",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"searchCountryPlaceholder",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"maxLength",void 0),u([e.Input(),s("design:type",String)],o.prototype,"tooltipField",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"selectFirstCountry",void 0),u([e.Input(),s("design:type",String)],o.prototype,"selectedCountryISO",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"phoneValidation",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"inputId",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"separateDialCode",void 0),u([e.Output(),s("design:type",Object)],o.prototype,"countryChange",void 0),u([e.ViewChild("countryList"),s("design:type",e.ElementRef)],o.prototype,"countryList",void 0),o=r=u([e.Component({selector:"ngx-intl-tel-input",template:'<div class="intl-tel-input allow-dropdown"\n\t[ngClass]="separateDialCodeClass">\n\t<div class="flag-container"\n\t\tdropdown\n\t\t[ngClass]="{\'disabled\': disabled}"\n\t\t[isDisabled]="disabled">\n\t\t<div class="selected-flag dropdown-toggle"\n\t\t\tdropdownToggle>\n\t\t\t<div class="iti-flag"\n\t\t\t\t[ngClass]="selectedCountry?.flagClass"\n\t\t\t\t[tooltip]="selectedCountry ? selectedCountry[tooltipField] : \'\'"></div>\n\t\t\t<div *ngIf="separateDialCode"\n\t\t\t\tclass="selected-dial-code">+{{selectedCountry.dialCode}}</div>\n\t\t\t<div class="iti-arrow"></div>\n\t\t</div>\n\t\t<div *dropdownMenu\n\t\t\tclass="dropdown-menu country-dropdown">\n\t\t\t<div class="search-container"\n\t\t\t\t*ngIf="searchCountryFlag && searchCountryField">\n\t\t\t\t<input id="country-search-box"\n\t\t\t\t\t[(ngModel)]="countrySearchText"\n\t\t\t\t\t(keyup)="searchCountry()"\n\t\t\t\t\t(click)="$event.stopPropagation()"\n\t\t\t\t\t[placeholder]="searchCountryPlaceholder"\n\t\t\t\t\tautofocus>\n\t\t\t</div>\n\t\t\t<ul class="country-list"\n\t\t\t\t#countryList>\n\t\t\t\t<li class="country"\n\t\t\t\t\t*ngFor="let country of preferredCountriesInDropDown"\n\t\t\t\t\t(click)="onCountrySelect(country, focusable)"\n\t\t\t\t\t[id]="country.iso2">\n\t\t\t\t\t<div class="flag-box">\n\t\t\t\t\t\t<div class="iti-flag"\n\t\t\t\t\t\t\t[ngClass]="country.flagClass"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="country-name">{{country.name}}</span>\n\t\t\t\t\t<span class="dial-code">+{{country.dialCode}}</span>\n\t\t\t\t</li>\n\t\t\t\t<li class="divider"\n\t\t\t\t\t*ngIf="preferredCountriesInDropDown?.length"></li>\n\t\t\t\t<li class="country"\n\t\t\t\t\t*ngFor="let country of allCountries"\n\t\t\t\t\t(click)="onCountrySelect(country, focusable)"\n\t\t\t\t\t[id]="country.iso2">\n\t\t\t\t\t<div class="flag-box">\n\t\t\t\t\t\t<div class="iti-flag"\n\t\t\t\t\t\t\t[ngClass]="country.flagClass"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="country-name">{{country.name}}</span>\n\t\t\t\t\t<span class="dial-code">+{{country.dialCode}}</span>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\t<input type="tel"\n\t\t[id]="inputId"\n\t\tautocomplete="off"\n\t\t[ngClass]="cssClass"\n\t\t(blur)="onTouched()"\n\t\t(keypress)="onInputKeyPress($event)"\n\t\t[(ngModel)]="phoneNumber"\n\t\t(ngModelChange)="onPhoneNumberChange()"\n\t\t[disabled]="disabled"\n\t\t[placeholder]="separateDialCodePlaceHolder(selectedCountry?.placeHolder || \'\')"\n\t\t[attr.maxLength]="maxLength"\n\t\t[attr.validation]="phoneValidation"\n\t\t#focusable>\n</div>',providers:[c,{provide:a.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return r})),multi:!0},{provide:a.NG_VALIDATORS,useValue:h,multi:!0}],styles:["li.country:hover{background-color:rgba(0,0,0,.05)}.selected-flag.dropdown-toggle:after{content:none}.flag-container.disabled{cursor:default!important}.intl-tel-input.allow-dropdown .flag-container.disabled:hover .selected-flag{background:0 0}.country-dropdown{border:1px solid #ccc;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:1px;border-collapse:collapse}.search-container{position:relative}.search-container input{width:100%;border:none;border-bottom:1px solid #ccc;padding-left:10px}.search-icon{position:absolute;z-index:2;width:25px;margin:1px 10px}.country-list{position:relative;border:none}.intl-tel-input input#country-search-box{padding-left:6px}.intl-tel-input.separate-dial-code .selected-flag,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 .selected-flag,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 .selected-flag,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 .selected-flag{width:93px}.intl-tel-input.separate-dial-code input,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 input,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 input,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 input{padding-left:98px}"]}),s("design:paramtypes",[c])],o)}(),I=function(){function t(t,e){this.controlDir=t,this.host=e}return t.prototype.ngOnInit=function(){this.controlDir.control&&(this.controlDir.control.nativeElement=this.host.nativeElement)},t.ctorParameters=function(){return[{type:a.NgControl},{type:e.ElementRef}]},t=u([e.Directive({selector:"[ngModel], [formControl], [formControlName]"}),s("design:paramtypes",[a.NgControl,e.ElementRef])],t)}(),g=function(){function t(){}var n;return n=t,t.forRoot=function(){return{ngModule:n,providers:[d]}},t=n=u([e.NgModule({declarations:[S,I],imports:[i.CommonModule,a.FormsModule,a.ReactiveFormsModule,o.BsDropdownModule.forRoot(),r.TooltipModule.forRoot()],exports:[S,I]})],t)}();t.NativeElementInjectorDirective=I,t.NgxIntlTelInputComponent=S,t.NgxIntlTelInputModule=g,t.NgxIntlTelInputService=d,t.ɵ0=h,t.ɵa=c,t.ɵb=p,Object.defineProperty(t,"__esModule",{value:!0})}));
***************************************************************************** */function u(t,e,n,a){var o,r=arguments.length,i=r<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var u=t.length-1;u>=0;u--)(o=t[u])&&(i=(r<3?o(i):r>3?o(e,n,i):o(e,n))||i);return r>3&&i&&Object.defineProperty(e,n,i),i}function s(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}var l,d=function(){function t(){}return t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=u([e.Injectable({providedIn:"root"}),s("design:paramtypes",[])],t)}();(l=t.CountryISO||(t.CountryISO={})).Afghanistan="af",l.Albania="al",l.Algeria="dz",l.AmericanSamoa="as",l.Andorra="ad",l.Angola="ao",l.Anguilla="ai",l.AntiguaAndBarbuda="ag",l.Argentina="ar",l.Armenia="am",l.Aruba="aw",l.Australia="au",l.Austria="at",l.Azerbaijan="az",l.Bahamas="bs",l.Bahrain="bh",l.Bangladesh="bd",l.Barbados="bb",l.Belarus="by",l.Belgium="be",l.Belize="bz",l.Benin="bj",l.Bermuda="bm",l.Bhutan="bt",l.Bolivia="bo",l.BosniaAndHerzegovina="ba",l.Botswana="bw",l.Brazil="br",l.BritishIndianOceanTerritory="io",l.BritishVirginIslands="vg",l.Brunei="bn",l.Bulgaria="bg",l.BurkinaFaso="bf",l.Burundi="bi",l.Cambodia="kh",l.Cameroon="cm",l.Canada="ca",l.CapeVerde="cv",l.CaribbeanNetherlands="bq",l.CaymanIslands="ky",l.CentralAfricanRepublic="cf",l.Chad="td",l.Chile="cl",l.China="cn",l.ChristmasIsland="cx",l.Cocos="cc",l.Colombia="co",l.Comoros="km",l.CongoDRCJamhuriYaKidemokrasiaYaKongo="cd",l.CongoRepublicCongoBrazzaville="cg",l.CookIslands="ck",l.CostaRica="cr",l["CôteDIvoire"]="ci",l.Croatia="hr",l.Cuba="cu",l["Curaçao"]="cw",l.Cyprus="cy",l.CzechRepublic="cz",l.Denmark="dk",l.Djibouti="dj",l.Dominica="dm",l.DominicanRepublic="do",l.Ecuador="ec",l.Egypt="eg",l.ElSalvador="sv",l.EquatorialGuinea="gq",l.Eritrea="er",l.Estonia="ee",l.Ethiopia="et",l.FalklandIslands="fk",l.FaroeIslands="fo",l.Fiji="fj",l.Finland="fi",l.France="fr",l.FrenchGuiana="gf",l.FrenchPolynesia="pf",l.Gabon="ga",l.Gambia="gm",l.Georgia="ge",l.Germany="de",l.Ghana="gh",l.Gibraltar="gi",l.Greece="gr",l.Greenland="gl",l.Grenada="gd",l.Guadeloupe="gp",l.Guam="gu",l.Guatemala="gt",l.Guernsey="gg",l.Guinea="gn",l.GuineaBissau="gw",l.Guyana="gy",l.Haiti="ht",l.Honduras="hn",l.HongKong="hk",l.Hungary="hu",l.Iceland="is",l.India="in",l.Indonesia="id",l.Iran="ir",l.Iraq="iq",l.Ireland="ie",l.IsleOfMan="im",l.Israel="il",l.Italy="it",l.Jamaica="jm",l.Japan="jp",l.Jersey="je",l.Jordan="jo",l.Kazakhstan="kz",l.Kenya="ke",l.Kiribati="ki",l.Kosovo="xk",l.Kuwait="kw",l.Kyrgyzstan="kg",l.Laos="la",l.Latvia="lv",l.Lebanon="lb",l.Lesotho="ls",l.Liberia="lr",l.Libya="ly",l.Liechtenstein="li",l.Lithuania="lt",l.Luxembourg="lu",l.Macau="mo",l.Macedonia="mk",l.Madagascar="mg",l.Malawi="mw",l.Malaysia="my",l.Maldives="mv",l.Mali="ml",l.Malta="mt",l.MarshallIslands="mh",l.Martinique="mq",l.Mauritania="mr",l.Mauritius="mu",l.Mayotte="yt",l.Mexico="mx",l.Micronesia="fm",l.Moldova="md",l.Monaco="mc",l.Mongolia="mn",l.Montenegro="me",l.Montserrat="ms",l.Morocco="ma",l.Mozambique="mz",l.Myanmar="mm",l.Namibia="na",l.Nauru="nr",l.Nepal="np",l.Netherlands="nl",l.NewCaledonia="nc",l.NewZealand="nz",l.Nicaragua="ni",l.Niger="ne",l.Nigeria="ng",l.Niue="nu",l.NorfolkIsland="nf",l.NorthKorea="kp",l.NorthernMarianaIslands="mp",l.Norway="no",l.Oman="om",l.Pakistan="pk",l.Palau="pw",l.Palestine="ps",l.Panama="pa",l.PapuaNewGuinea="pg",l.Paraguay="py",l.Peru="pe",l.Philippines="ph",l.Poland="pl",l.Portugal="pt",l.PuertoRico="pr",l.Qatar="qa",l["Réunion"]="re",l.Romania="ro",l.Russia="ru",l.Rwanda="rw",l["SaintBarthélemy"]="bl",l.SaintHelena="sh",l.SaintKittsAndNevis="kn",l.SaintLucia="lc",l.SaintMartin="mf",l.SaintPierreAndMiquelon="pm",l.SaintVincentAndTheGrenadines="vc",l.Samoa="ws",l.SanMarino="sm",l["SãoToméAndPríncipe"]="st",l.SaudiArabia="sa",l.Senegal="sn",l.Serbia="rs",l.Seychelles="sc",l.SierraLeone="sl",l.Singapore="sg",l.SintMaarten="sx",l.Slovakia="sk",l.Slovenia="si",l.SolomonIslands="sb",l.Somalia="so",l.SouthAfrica="za",l.SouthKorea="kr",l.SouthSudan="ss",l.Spain="es",l.SriLanka="lk",l.Sudan="sd",l.Suriname="sr",l.SvalbardAndJanMayen="sj",l.Swaziland="sz",l.Sweden="se",l.Switzerland="ch",l.Syria="sy",l.Taiwan="tw",l.Tajikistan="tj",l.Tanzania="tz",l.Thailand="th",l.TimorLeste="tl",l.Togo="tg",l.Tokelau="tk",l.Tonga="to",l.TrinidadAndTobago="tt",l.Tunisia="tn",l.Turkey="tr",l.Turkmenistan="tm",l.TurksAndCaicosIslands="tc",l.Tuvalu="tv",l.USVirginIslands="vi",l.Uganda="ug",l.Ukraine="ua",l.UnitedArabEmirates="ae",l.UnitedKingdom="gb",l.UnitedStates="us",l.Uruguay="uy",l.Uzbekistan="uz",l.Vanuatu="vu",l.VaticanCity="va",l.Venezuela="ve",l.Vietnam="vn",l.WallisAndFutuna="wf",l.WesternSahara="eh",l.Yemen="ye",l.Zambia="zm",l.Zimbabwe="zw",l["ÅlandIslands"]="ax";var y,C,c=function(){function n(){this.allCountries=[["Afghanistan (‫افغانستان‬‎)",t.CountryISO.Afghanistan,"93"],["Albania (Shqipëri)",t.CountryISO.Albania,"355"],["Algeria (‫الجزائر‬‎)",t.CountryISO.Algeria,"213"],["American Samoa","as","1",1,["684"]],["Andorra",t.CountryISO.Andorra,"376"],["Angola",t.CountryISO.Angola,"244"],["Anguilla","ai","1",1,["264"]],["Antigua and Barbuda","ag","1",1,["268"]],["Argentina",t.CountryISO.Argentina,"54"],["Armenia (Հայաստան)",t.CountryISO.Armenia,"374"],["Aruba",t.CountryISO.Aruba,"297"],["Australia",t.CountryISO.Australia,"61",0],["Austria (Österreich)",t.CountryISO.Austria,"43"],["Azerbaijan (Azərbaycan)",t.CountryISO.Azerbaijan,"994"],["Bahamas","bs","1",1,["242"]],["Bahrain (‫البحرين‬‎)",t.CountryISO.Bahrain,"973"],["Bangladesh (বাংলাদেশ)",t.CountryISO.Bangladesh,"880"],["Barbados","bb","1",1,["246"]],["Belarus (Беларусь)",t.CountryISO.Belarus,"375"],["Belgium (België)",t.CountryISO.Belgium,"32"],["Belize",t.CountryISO.Belize,"501"],["Benin (Bénin)",t.CountryISO.Benin,"229"],["Bermuda","bm","1",1,["441"]],["Bhutan (འབྲུག)",t.CountryISO.Bhutan,"975"],["Bolivia",t.CountryISO.Bolivia,"591"],["Bosnia and Herzegovina (Босна и Херцеговина)",t.CountryISO.BosniaAndHerzegovina,"387"],["Botswana",t.CountryISO.Botswana,"267"],["Brazil (Brasil)",t.CountryISO.Brazil,"55"],["British Indian Ocean Territory",t.CountryISO.BritishIndianOceanTerritory,"246"],["British Virgin Islands","vg","1",1,["284"]],["Brunei",t.CountryISO.Brunei,"673"],["Bulgaria (България)",t.CountryISO.Bulgaria,"359"],["Burkina Faso",t.CountryISO.BurkinaFaso,"226"],["Burundi (Uburundi)",t.CountryISO.Burundi,"257"],["Cambodia (កម្ពុជា)",t.CountryISO.Cambodia,"855"],["Cameroon (Cameroun)",t.CountryISO.Cameroon,"237"],["Canada",t.CountryISO.Canada,"1",1,["204","226","236","249","250","289","306","343","365","387","403","416","418","431","437","438","450","506","514","519","548","579","581","587","604","613","639","647","672","705","709","742","778","780","782","807","819","825","867","873","902","905"]],["Cape Verde (Kabu Verdi)",t.CountryISO.CapeVerde,"238"],["Caribbean Netherlands",t.CountryISO.CaribbeanNetherlands,"599",1],["Cayman Islands","ky","1",1,["345"]],["Central African Republic (République centrafricaine)",t.CountryISO.CentralAfricanRepublic,"236"],["Chad (Tchad)",t.CountryISO.Chad,"235"],["Chile",t.CountryISO.Chile,"56"],["China (中国)",t.CountryISO.China,"86"],["Christmas Island",t.CountryISO.ChristmasIsland,"61",2],["Cocos (Keeling) Islands",t.CountryISO.Cocos,"61",1],["Colombia",t.CountryISO.Colombia,"57"],["Comoros (‫جزر القمر‬‎)",t.CountryISO.Comoros,"269"],["Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",t.CountryISO.CongoDRCJamhuriYaKidemokrasiaYaKongo,"243"],["Congo (Republic) (Congo-Brazzaville)",t.CountryISO.CongoRepublicCongoBrazzaville,"242"],["Cook Islands",t.CountryISO.CookIslands,"682"],["Costa Rica",t.CountryISO.CostaRica,"506"],["Côte d’Ivoire",t.CountryISO.CôteDIvoire,"225"],["Croatia (Hrvatska)",t.CountryISO.Croatia,"385"],["Cuba",t.CountryISO.Cuba,"53"],["Curaçao",t.CountryISO.Curaçao,"599",0],["Cyprus (Κύπρος)",t.CountryISO.Cyprus,"357"],["Czech Republic (Česká republika)",t.CountryISO.CzechRepublic,"420"],["Denmark (Danmark)",t.CountryISO.Denmark,"45"],["Djibouti",t.CountryISO.Djibouti,"253"],["Dominica",t.CountryISO.Dominica,"1767"],["Dominican Republic (República Dominicana)",t.CountryISO.DominicanRepublic,"1",2,["809","829","849"]],["Ecuador",t.CountryISO.Ecuador,"593"],["Egypt (‫مصر‬‎)",t.CountryISO.Egypt,"20"],["El Salvador",t.CountryISO.ElSalvador,"503"],["Equatorial Guinea (Guinea Ecuatorial)",t.CountryISO.EquatorialGuinea,"240"],["Eritrea",t.CountryISO.Eritrea,"291"],["Estonia (Eesti)",t.CountryISO.Estonia,"372"],["Ethiopia",t.CountryISO.Ethiopia,"251"],["Falkland Islands (Islas Malvinas)",t.CountryISO.FalklandIslands,"500"],["Faroe Islands (Føroyar)",t.CountryISO.FaroeIslands,"298"],["Fiji",t.CountryISO.Fiji,"679"],["Finland (Suomi)",t.CountryISO.Finland,"358",0],["France",t.CountryISO.France,"33"],["French Guiana (Guyane française)",t.CountryISO.FrenchGuiana,"594"],["French Polynesia (Polynésie française)",t.CountryISO.FrenchPolynesia,"689"],["Gabon",t.CountryISO.Gabon,"241"],["Gambia",t.CountryISO.Gambia,"220"],["Georgia (საქართველო)",t.CountryISO.Georgia,"995"],["Germany (Deutschland)",t.CountryISO.Germany,"49"],["Ghana (Gaana)",t.CountryISO.Ghana,"233"],["Gibraltar",t.CountryISO.Gibraltar,"350"],["Greece (Ελλάδα)",t.CountryISO.Greece,"30"],["Greenland (Kalaallit Nunaat)",t.CountryISO.Greenland,"299"],["Grenada",t.CountryISO.Grenada,"1473"],["Guadeloupe",t.CountryISO.Guadeloupe,"590",0],["Guam","gu","1",1,["671"]],["Guatemala",t.CountryISO.Guatemala,"502"],["Guernsey",t.CountryISO.Guernsey,"44",1,[1481]],["Guinea (Guinée)",t.CountryISO.Guinea,"224"],["Guinea-Bissau (Guiné Bissau)",t.CountryISO.GuineaBissau,"245"],["Guyana",t.CountryISO.Guyana,"592"],["Haiti",t.CountryISO.Haiti,"509"],["Honduras",t.CountryISO.Honduras,"504"],["Hong Kong (香港)",t.CountryISO.HongKong,"852"],["Hungary (Magyarország)",t.CountryISO.Hungary,"36"],["Iceland (Ísland)",t.CountryISO.Iceland,"354"],["India (भारत)",t.CountryISO.India,"91"],["Indonesia",t.CountryISO.Indonesia,"62"],["Iran (‫ایران‬‎)",t.CountryISO.Iran,"98"],["Iraq (‫العراق‬‎)",t.CountryISO.Iraq,"964"],["Ireland",t.CountryISO.Ireland,"353"],["Isle of Man",t.CountryISO.IsleOfMan,"44",2,[1624]],["Israel (‫ישראל‬‎)",t.CountryISO.Israel,"972"],["Italy (Italia)",t.CountryISO.Italy,"39",0],["Jamaica","jm","1",1,["876"]],["Japan (日本)",t.CountryISO.Japan,"81"],["Jersey",t.CountryISO.Jersey,"44",3,[1534]],["Jordan (‫الأردن‬‎)",t.CountryISO.Jordan,"962"],["Kazakhstan (Казахстан)",t.CountryISO.Kazakhstan,"7",1],["Kenya",t.CountryISO.Kenya,"254"],["Kiribati",t.CountryISO.Kiribati,"686"],["Kosovo",t.CountryISO.Kosovo,"383"],["Kuwait (‫الكويت‬‎)",t.CountryISO.Kuwait,"965"],["Kyrgyzstan (Кыргызстан)",t.CountryISO.Kyrgyzstan,"996"],["Laos (ລາວ)",t.CountryISO.Laos,"856"],["Latvia (Latvija)",t.CountryISO.Latvia,"371"],["Lebanon (‫لبنان‬‎)",t.CountryISO.Lebanon,"961"],["Lesotho",t.CountryISO.Lesotho,"266"],["Liberia",t.CountryISO.Liberia,"231"],["Libya (‫ليبيا‬‎)",t.CountryISO.Libya,"218"],["Liechtenstein",t.CountryISO.Liechtenstein,"423"],["Lithuania (Lietuva)",t.CountryISO.Lithuania,"370"],["Luxembourg",t.CountryISO.Luxembourg,"352"],["Macau (澳門)",t.CountryISO.Macau,"853"],["Macedonia (FYROM) (Македонија)",t.CountryISO.Macedonia,"389"],["Madagascar (Madagasikara)",t.CountryISO.Madagascar,"261"],["Malawi",t.CountryISO.Malawi,"265"],["Malaysia",t.CountryISO.Malaysia,"60"],["Maldives",t.CountryISO.Maldives,"960"],["Mali",t.CountryISO.Mali,"223"],["Malta",t.CountryISO.Malta,"356"],["Marshall Islands",t.CountryISO.MarshallIslands,"692"],["Martinique",t.CountryISO.Martinique,"596"],["Mauritania (‫موريتانيا‬‎)",t.CountryISO.Mauritania,"222"],["Mauritius (Moris)",t.CountryISO.Mauritius,"230"],["Mayotte",t.CountryISO.Mayotte,"262",1],["Mexico (México)",t.CountryISO.Mexico,"52"],["Micronesia",t.CountryISO.Micronesia,"691"],["Moldova (Republica Moldova)",t.CountryISO.Moldova,"373"],["Monaco",t.CountryISO.Monaco,"377"],["Mongolia (Монгол)",t.CountryISO.Mongolia,"976"],["Montenegro (Crna Gora)",t.CountryISO.Montenegro,"382"],["Montserrat","ms","1",1,["664"]],["Morocco (‫المغرب‬‎)",t.CountryISO.Morocco,"212",0],["Mozambique (Moçambique)",t.CountryISO.Mozambique,"258"],["Myanmar (Burma) (မြန်မာ)",t.CountryISO.Myanmar,"95"],["Namibia (Namibië)",t.CountryISO.Namibia,"264"],["Nauru",t.CountryISO.Nauru,"674"],["Nepal (नेपाल)",t.CountryISO.Nepal,"977"],["Netherlands (Nederland)",t.CountryISO.Netherlands,"31"],["New Caledonia (Nouvelle-Calédonie)",t.CountryISO.NewCaledonia,"687"],["New Zealand",t.CountryISO.NewZealand,"64"],["Nicaragua",t.CountryISO.Nicaragua,"505"],["Niger (Nijar)",t.CountryISO.Niger,"227"],["Nigeria",t.CountryISO.Nigeria,"234"],["Niue",t.CountryISO.Niue,"683"],["Norfolk Island",t.CountryISO.NorfolkIsland,"672"],["North Korea (조선 민주주의 인민 공화국)",t.CountryISO.NorthKorea,"850"],["Northern Mariana Islands",t.CountryISO.NorthernMarianaIslands,"1670"],["Norway (Norge)",t.CountryISO.Norway,"47",0],["Oman (‫عُمان‬‎)",t.CountryISO.Oman,"968"],["Pakistan (‫پاکستان‬‎)",t.CountryISO.Pakistan,"92"],["Palau",t.CountryISO.Palau,"680"],["Palestine (‫فلسطين‬‎)",t.CountryISO.Palestine,"970"],["Panama (Panamá)",t.CountryISO.Panama,"507"],["Papua New Guinea",t.CountryISO.PapuaNewGuinea,"675"],["Paraguay",t.CountryISO.Paraguay,"595"],["Peru (Perú)",t.CountryISO.Peru,"51"],["Philippines",t.CountryISO.Philippines,"63"],["Poland (Polska)",t.CountryISO.Poland,"48"],["Portugal",t.CountryISO.Portugal,"351"],["Puerto Rico",t.CountryISO.PuertoRico,"1",3,["787","939"]],["Qatar (‫قطر‬‎)",t.CountryISO.Qatar,"974"],["Réunion (La Réunion)",t.CountryISO.Réunion,"262",0],["Romania (România)",t.CountryISO.Romania,"40"],["Russia (Россия)",t.CountryISO.Russia,"7",0],["Rwanda",t.CountryISO.Rwanda,"250"],["Saint Barthélemy (Saint-Barthélemy)",t.CountryISO.SaintBarthélemy,"590",1],["Saint Helena",t.CountryISO.SaintHelena,"290"],["Saint Kitts and Nevis",t.CountryISO.SaintKittsAndNevis,"1869"],["Saint Lucia","lc","1",1,["758"]],["Saint Martin (Saint-Martin (partie française))",t.CountryISO.SaintMartin,"590",2],["Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)",t.CountryISO.SaintPierreAndMiquelon,"508"],["Saint Vincent and the Grenadines","vc","1",1,["784"]],["Samoa",t.CountryISO.Samoa,"685"],["San Marino",t.CountryISO.SanMarino,"378"],["São Tomé and Príncipe (São Tomé e Príncipe)",t.CountryISO.SãoToméAndPríncipe,"239"],["Saudi Arabia (‫المملكة العربية السعودية‬‎)",t.CountryISO.SaudiArabia,"966"],["Senegal (Sénégal)",t.CountryISO.Senegal,"221"],["Serbia (Србија)",t.CountryISO.Serbia,"381"],["Seychelles",t.CountryISO.Seychelles,"248"],["Sierra Leone",t.CountryISO.SierraLeone,"232"],["Singapore",t.CountryISO.Singapore,"65"],["Sint Maarten","sx","1",1,["721"]],["Slovakia (Slovensko)",t.CountryISO.Slovakia,"421"],["Slovenia (Slovenija)",t.CountryISO.Slovenia,"386"],["Solomon Islands",t.CountryISO.SolomonIslands,"677"],["Somalia (Soomaaliya)",t.CountryISO.Somalia,"252"],["South Africa",t.CountryISO.SouthAfrica,"27"],["South Korea (대한민국)",t.CountryISO.SouthKorea,"82"],["South Sudan (‫جنوب السودان‬‎)",t.CountryISO.SouthSudan,"211"],["Spain (España)",t.CountryISO.Spain,"34"],["Sri Lanka (ශ්‍රී ලංකාව)",t.CountryISO.SriLanka,"94"],["Sudan (‫السودان‬‎)",t.CountryISO.Sudan,"249"],["Suriname",t.CountryISO.Suriname,"597"],["Svalbard and Jan Mayen",t.CountryISO.SvalbardAndJanMayen,"47",1],["Swaziland",t.CountryISO.Swaziland,"268"],["Sweden (Sverige)",t.CountryISO.Sweden,"46"],["Switzerland (Schweiz)",t.CountryISO.Switzerland,"41"],["Syria (‫سوريا‬‎)",t.CountryISO.Syria,"963"],["Taiwan (台灣)",t.CountryISO.Taiwan,"886"],["Tajikistan",t.CountryISO.Tajikistan,"992"],["Tanzania",t.CountryISO.Tanzania,"255"],["Thailand (ไทย)",t.CountryISO.Thailand,"66"],["Timor-Leste",t.CountryISO.TimorLeste,"670"],["Togo",t.CountryISO.Togo,"228"],["Tokelau",t.CountryISO.Tokelau,"690"],["Tonga",t.CountryISO.Tonga,"676"],["Trinidad and Tobago","tt","1",1,["868"]],["Tunisia (‫تونس‬‎)",t.CountryISO.Tunisia,"216"],["Turkey (Türkiye)",t.CountryISO.Turkey,"90"],["Turkmenistan",t.CountryISO.Turkmenistan,"993"],["Turks and Caicos Islands",t.CountryISO.TurksAndCaicosIslands,"1649"],["Tuvalu",t.CountryISO.Tuvalu,"688"],["U.S. Virgin Islands","vi","1",1,["340"]],["Uganda",t.CountryISO.Uganda,"256"],["Ukraine (Україна)",t.CountryISO.Ukraine,"380"],["United Arab Emirates (‫الإمارات العربية المتحدة‬‎)",t.CountryISO.UnitedArabEmirates,"971"],["United Kingdom",t.CountryISO.UnitedKingdom,"44",0],["United States",t.CountryISO.UnitedStates,"1",0],["Uruguay",t.CountryISO.Uruguay,"598"],["Uzbekistan (Oʻzbekiston)",t.CountryISO.Uzbekistan,"998"],["Vanuatu",t.CountryISO.Vanuatu,"678"],["Vatican City (Città del Vaticano)",t.CountryISO.VaticanCity,"39",1],["Venezuela",t.CountryISO.Venezuela,"58"],["Vietnam (Việt Nam)",t.CountryISO.Vietnam,"84"],["Wallis and Futuna",t.CountryISO.WallisAndFutuna,"681"],["Western Sahara (‫الصحراء الغربية‬‎)",t.CountryISO.WesternSahara,"212",1],["Yemen (‫اليمن‬‎)",t.CountryISO.Yemen,"967"],["Zambia",t.CountryISO.Zambia,"260"],["Zimbabwe",t.CountryISO.Zimbabwe,"263"],["Åland Islands",t.CountryISO.ÅlandIslands,"358",1]]}return n=u([e.Injectable()],n)}();(y=t.SearchCountryField||(t.SearchCountryField={})).DialCode="dialCode",y.Iso2="iso2",y.Name="name",y.All="all",(C=t.TooltipLabel||(t.TooltipLabel={})).Name="name",C.Iso2="iso2";var p=function(t){if(t.value){var e=t.nativeElement,a=e?e.querySelector('input[type="tel"]'):void 0;if(a){a.id;var o=a.getAttribute("validation");if("true"===o){var r=t.errors&&!0===t.errors.required,i={validatePhoneNumber:{valid:!1}};a.setCustomValidity("Invalid field.");var u=void 0;try{u=n.PhoneNumberUtil.getInstance().parse(t.value.number,t.value.countryCode)}catch(t){if(!0===r)return i;a.setCustomValidity("")}if(t.value){if(!u)return i;if(!n.PhoneNumberUtil.getInstance().isValidNumberForRegion(u,t.value.countryCode))return i;a.setCustomValidity("")}}else"false"===o&&(a.setCustomValidity(""),t.clearValidators())}}},h=p,S=function(){function o(a){this.countryCodeData=a,this.value="",this.preferredCountries=[],this.enablePlaceholder=!0,this.cssClass="form-control",this.onlyCountries=[],this.enableAutoCountrySelect=!0,this.searchCountryFlag=!1,this.searchCountryField=[t.SearchCountryField.All],this.searchCountryPlaceholder="Search Country",this.maxLength="",this.selectFirstCountry=!0,this.phoneValidation=!0,this.inputId="phone",this.separateDialCode=!1,this.countryChange=new e.EventEmitter,this.selectedCountry={areaCodes:void 0,dialCode:"",flagClass:"",iso2:"",name:"",placeHolder:"",priority:0},this.phoneNumber="",this.allCountries=[],this.preferredCountriesInDropDown=[],this.phoneUtil=n.PhoneNumberUtil.getInstance(),this.disabled=!1,this.errors=["Phone number is required."],this.countrySearchText="",this.onTouched=function(){},this.propagateChange=function(t){}}var r;return r=o,o.prototype.ngOnInit=function(){this.init()},o.prototype.ngOnChanges=function(t){var e=t.selectedCountryISO;this.allCountries&&e&&e.currentValue!==e.previousValue&&this.getSelectedCountry(),t.preferredCountries&&this.getPreferredCountries(),this.checkSeparateDialCodeStyle()},o.prototype.init=function(){var t=this;this.fetchCountryData(),this.preferredCountries.length&&this.getPreferredCountries(),this.onlyCountries.length&&(this.allCountries=this.allCountries.filter((function(e){return t.onlyCountries.includes(e.iso2)}))),this.selectFirstCountry&&(this.preferredCountriesInDropDown.length?this.setSelectedCountry(this.preferredCountriesInDropDown[0]):this.setSelectedCountry(this.allCountries[0])),this.getSelectedCountry(),this.checkSeparateDialCodeStyle()},o.prototype.getPreferredCountries=function(){var t=this;this.preferredCountries.length&&(this.preferredCountriesInDropDown=[],this.preferredCountries.forEach((function(e){var n=t.allCountries.filter((function(t){return t.iso2===e}));t.preferredCountriesInDropDown.push(n[0])})))},o.prototype.getSelectedCountry=function(){var t=this;this.selectedCountryISO&&(this.selectedCountry=this.allCountries.find((function(e){return e.iso2.toLowerCase()===t.selectedCountryISO.toLowerCase()})),this.selectedCountry&&(this.phoneNumber?this.onPhoneNumberChange():this.propagateChange(null)))},o.prototype.setSelectedCountry=function(t){this.selectedCountry=t,this.countryChange.emit(t)},o.prototype.searchCountry=function(){var e=this;if(this.countrySearchText){var n=this.countrySearchText.toLowerCase(),a=this.allCountries.filter((function(a){if(e.searchCountryField.indexOf(t.SearchCountryField.All)>-1){if(a.iso2.toLowerCase().startsWith(n))return a;if(a.name.toLowerCase().startsWith(n))return a;if(a.dialCode.startsWith(e.countrySearchText))return a}else{if(e.searchCountryField.indexOf(t.SearchCountryField.Iso2)>-1&&a.iso2.toLowerCase().startsWith(n))return a;if(e.searchCountryField.indexOf(t.SearchCountryField.Name)>-1&&a.name.toLowerCase().startsWith(n))return a;if(e.searchCountryField.indexOf(t.SearchCountryField.DialCode)>-1&&a.dialCode.startsWith(e.countrySearchText))return a}}));if(a.length>0){var o=this.countryList.nativeElement.querySelector("#"+a[0].iso2);o&&o.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}this.checkSeparateDialCodeStyle()}else this.countryList.nativeElement.querySelector(".country-list li").scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},o.prototype.onPhoneNumberChange=function(){var t,e;if(this.phoneNumber&&"object"==typeof this.phoneNumber){var a=this.phoneNumber;this.phoneNumber=a.number,t=a.countryCode}this.value=this.phoneNumber,t=t||this.selectedCountry.iso2.toUpperCase();try{e=this.phoneUtil.parse(this.phoneNumber,t)}catch(t){}if(this.enableAutoCountrySelect&&(t=e&&e.getCountryCode()?this.getCountryIsoCode(e.getCountryCode(),e):this.selectedCountry.iso2)&&t!==this.selectedCountry.iso2){var o=this.allCountries.find((function(e){return e.iso2===t}));o&&(this.selectedCountry=o)}if(t=t||this.selectedCountry.iso2,this.checkSeparateDialCodeStyle(),this.value){var r=e?this.phoneUtil.format(e,n.PhoneNumberFormat.INTERNATIONAL):"";this.separateDialCode&&r&&(this.value=this.removeDialCode(r)),this.propagateChange({number:this.value,internationalNumber:r,nationalNumber:e?this.phoneUtil.format(e,n.PhoneNumberFormat.NATIONAL):"",e164Number:e?this.phoneUtil.format(e,n.PhoneNumberFormat.E164):"",countryCode:t.toUpperCase(),dialCode:"+"+this.selectedCountry.dialCode})}else this.propagateChange(null)},o.prototype.onCountrySelect=function(t,e){if(this.setSelectedCountry(t),this.checkSeparateDialCodeStyle(),this.phoneNumber&&this.phoneNumber.length>0){this.value=this.phoneNumber;var a=void 0;try{a=this.phoneUtil.parse(this.phoneNumber,this.selectedCountry.iso2.toUpperCase())}catch(t){}var o=a?this.phoneUtil.format(a,n.PhoneNumberFormat.INTERNATIONAL):"";this.separateDialCode&&o&&(this.value=this.removeDialCode(o)),this.propagateChange({number:this.value,internationalNumber:o,nationalNumber:a?this.phoneUtil.format(a,n.PhoneNumberFormat.NATIONAL):"",e164Number:a?this.phoneUtil.format(a,n.PhoneNumberFormat.E164):"",countryCode:this.selectedCountry.iso2.toUpperCase(),dialCode:"+"+this.selectedCountry.dialCode})}else this.propagateChange(null);e.focus()},o.prototype.onInputKeyPress=function(t){/[0-9\+\-\ ]/.test(t.key)||t.ctrlKey&&/[axcv]/.test(t.key)||["ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End","Insert","Delete","Backspace"].includes(t.key)||t.preventDefault()},o.prototype.fetchCountryData=function(){var t=this;this.allCountries=[],this.countryCodeData.allCountries.forEach((function(e){var n={name:e[0].toString(),iso2:e[1].toString(),dialCode:e[2].toString(),priority:+e[3]||0,areaCodes:e[4]||void 0,flagClass:e[1].toString().toLocaleLowerCase(),placeHolder:""};t.enablePlaceholder&&(n.placeHolder=t.getPhoneNumberPlaceHolder(n.iso2.toUpperCase())),t.allCountries.push(n)}))},o.prototype.getPhoneNumberPlaceHolder=function(t){try{return this.phoneUtil.format(this.phoneUtil.getExampleNumber(t),n.PhoneNumberFormat.INTERNATIONAL)}catch(t){return t}},o.prototype.registerOnChange=function(t){this.propagateChange=t},o.prototype.registerOnTouched=function(t){this.onTouched=t},o.prototype.setDisabledState=function(t){this.disabled=t},o.prototype.writeValue=function(t){var e=this;void 0===t&&this.init(),this.phoneNumber=t,setTimeout((function(){e.onPhoneNumberChange()}),1)},o.prototype.getCountryIsoCode=function(t,e){var n=e.values_[2].toString(),a=this.allCountries.filter((function(e){return e.dialCode===t.toString()})),o=a.find((function(t){return void 0===t.areaCodes})),r=a.filter((function(t){return void 0!==t.areaCodes})),i=o?o.iso2:void 0;return r.forEach((function(t){t.areaCodes.forEach((function(e){n.startsWith(e)&&(i=t.iso2)}))})),i},o.prototype.separateDialCodePlaceHolder=function(t){return this.removeDialCode(t)},o.prototype.removeDialCode=function(t){return this.separateDialCode&&t&&(t=t.substr(t.indexOf(" ")+1)),t},o.prototype.checkSeparateDialCodeStyle=function(){if(this.separateDialCode&&this.selectedCountry){var t=this.selectedCountry.dialCode;this.separateDialCodeClass="separate-dial-code iti-sdc-"+(t.length+1)}else this.separateDialCodeClass=""},o.ctorParameters=function(){return[{type:c}]},u([e.Input(),s("design:type",Object)],o.prototype,"value",void 0),u([e.Input(),s("design:type",Array)],o.prototype,"preferredCountries",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"enablePlaceholder",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"cssClass",void 0),u([e.Input(),s("design:type",Array)],o.prototype,"onlyCountries",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"enableAutoCountrySelect",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"searchCountryFlag",void 0),u([e.Input(),s("design:type",Array)],o.prototype,"searchCountryField",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"searchCountryPlaceholder",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"maxLength",void 0),u([e.Input(),s("design:type",String)],o.prototype,"tooltipField",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"selectFirstCountry",void 0),u([e.Input(),s("design:type",String)],o.prototype,"selectedCountryISO",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"phoneValidation",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"inputId",void 0),u([e.Input(),s("design:type",Object)],o.prototype,"separateDialCode",void 0),u([e.Output(),s("design:type",Object)],o.prototype,"countryChange",void 0),u([e.ViewChild("countryList"),s("design:type",e.ElementRef)],o.prototype,"countryList",void 0),o=r=u([e.Component({selector:"ngx-intl-tel-input",template:'<div class="intl-tel-input allow-dropdown"\n\t[ngClass]="separateDialCodeClass">\n\t<div class="flag-container"\n\t\tdropdown\n\t\t[ngClass]="{\'disabled\': disabled}"\n\t\t[isDisabled]="disabled">\n\t\t<div class="selected-flag dropdown-toggle"\n\t\t\tdropdownToggle>\n\t\t\t<div class="iti-flag"\n\t\t\t\t[ngClass]="selectedCountry?.flagClass"\n\t\t\t\t[tooltip]="selectedCountry ? selectedCountry[tooltipField] : \'\'"></div>\n\t\t\t<div *ngIf="separateDialCode"\n\t\t\t\tclass="selected-dial-code">+{{selectedCountry.dialCode}}</div>\n\t\t\t<div class="iti-arrow"></div>\n\t\t</div>\n\t\t<div *dropdownMenu\n\t\t\tclass="dropdown-menu country-dropdown">\n\t\t\t<div class="search-container"\n\t\t\t\t*ngIf="searchCountryFlag && searchCountryField">\n\t\t\t\t<input id="country-search-box"\n\t\t\t\t\t[(ngModel)]="countrySearchText"\n\t\t\t\t\t(keyup)="searchCountry()"\n\t\t\t\t\t(click)="$event.stopPropagation()"\n\t\t\t\t\t[placeholder]="searchCountryPlaceholder"\n\t\t\t\t\tautofocus>\n\t\t\t</div>\n\t\t\t<ul class="country-list"\n\t\t\t\t#countryList>\n\t\t\t\t<li class="country"\n\t\t\t\t\t*ngFor="let country of preferredCountriesInDropDown"\n\t\t\t\t\t(click)="onCountrySelect(country, focusable)"\n\t\t\t\t\t[id]="country.iso2">\n\t\t\t\t\t<div class="flag-box">\n\t\t\t\t\t\t<div class="iti-flag"\n\t\t\t\t\t\t\t[ngClass]="country.flagClass"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="country-name">{{country.name}}</span>\n\t\t\t\t\t<span class="dial-code">+{{country.dialCode}}</span>\n\t\t\t\t</li>\n\t\t\t\t<li class="divider"\n\t\t\t\t\t*ngIf="preferredCountriesInDropDown?.length"></li>\n\t\t\t\t<li class="country"\n\t\t\t\t\t*ngFor="let country of allCountries"\n\t\t\t\t\t(click)="onCountrySelect(country, focusable)"\n\t\t\t\t\t[id]="country.iso2">\n\t\t\t\t\t<div class="flag-box">\n\t\t\t\t\t\t<div class="iti-flag"\n\t\t\t\t\t\t\t[ngClass]="country.flagClass"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class="country-name">{{country.name}}</span>\n\t\t\t\t\t<span class="dial-code">+{{country.dialCode}}</span>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\t<input type="tel"\n\t\t[id]="inputId"\n\t\tautocomplete="off"\n\t\t[ngClass]="cssClass"\n\t\t(blur)="onTouched()"\n\t\t(keypress)="onInputKeyPress($event)"\n\t\t[(ngModel)]="phoneNumber"\n\t\t(ngModelChange)="onPhoneNumberChange()"\n\t\t[disabled]="disabled"\n\t\t[placeholder]="separateDialCodePlaceHolder(selectedCountry?.placeHolder || \'\')"\n\t\t[attr.maxLength]="maxLength"\n\t\t[attr.validation]="phoneValidation"\n\t\t#focusable>\n</div>',providers:[c,{provide:a.NG_VALUE_ACCESSOR,useExisting:e.forwardRef((function(){return r})),multi:!0},{provide:a.NG_VALIDATORS,useValue:h,multi:!0}],styles:["li.country:hover{background-color:rgba(0,0,0,.05)}.selected-flag.dropdown-toggle:after{content:none}.flag-container.disabled{cursor:default!important}.intl-tel-input.allow-dropdown .flag-container.disabled:hover .selected-flag{background:0 0}.country-dropdown{border:1px solid #ccc;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:1px;border-collapse:collapse}.search-container{position:relative}.search-container input{width:100%;border:none;border-bottom:1px solid #ccc;padding-left:10px}.search-icon{position:absolute;z-index:2;width:25px;margin:1px 10px}.country-list{position:relative;border:none}.intl-tel-input input#country-search-box{padding-left:6px}.intl-tel-input.separate-dial-code .selected-flag,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 .selected-flag,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 .selected-flag,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 .selected-flag{width:93px}.intl-tel-input.separate-dial-code input,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 input,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 input,.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 input{padding-left:98px}"]}),s("design:paramtypes",[c])],o)}(),I=function(){function t(t,e){this.controlDir=t,this.host=e}return t.prototype.ngOnInit=function(){this.controlDir.control&&(this.controlDir.control.nativeElement=this.host.nativeElement)},t.ctorParameters=function(){return[{type:a.NgControl},{type:e.ElementRef}]},t=u([e.Directive({selector:"[ngModel], [formControl], [formControlName]"}),s("design:paramtypes",[a.NgControl,e.ElementRef])],t)}(),g=function(){function t(){}var n;return n=t,t.forRoot=function(){return{ngModule:n,providers:[d]}},t=n=u([e.NgModule({declarations:[S,I],imports:[i.CommonModule,a.FormsModule,a.ReactiveFormsModule,o.BsDropdownModule.forRoot(),r.TooltipModule.forRoot()],exports:[S,I]})],t)}();t.NativeElementInjectorDirective=I,t.NgxIntlTelInputComponent=S,t.NgxIntlTelInputModule=g,t.NgxIntlTelInputService=d,t.ɵ0=h,t.ɵa=c,t.ɵb=p,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=ngx-intl-tel-input.umd.min.js.map

@@ -180,9 +180,16 @@ var NgxIntlTelInputComponent_1;

onPhoneNumberChange() {
let countryCode;
// Handle the case where the user sets the value programatically based on a persisted ChangeData obj.
if (this.phoneNumber && typeof this.phoneNumber === 'object') {
const numberObj = this.phoneNumber;
this.phoneNumber = numberObj.number;
countryCode = numberObj.countryCode;
}
this.value = this.phoneNumber;
countryCode = countryCode || this.selectedCountry.iso2.toUpperCase();
let number;
try {
number = this.phoneUtil.parse(this.phoneNumber, this.selectedCountry.iso2.toUpperCase());
number = this.phoneUtil.parse(this.phoneNumber, countryCode);
}
catch (e) { }
let countryCode = this.selectedCountry.iso2;
// auto select country based on the extension (and areaCode if needed) (e.g select Canada if number starts with +1 416)

@@ -476,2 +483,2 @@ if (this.enableAutoCountrySelect) {

export { ɵ0 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1pbnRsLXRlbC1pbnB1dC8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtaW50bC10ZWwtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQztBQUU3QyxPQUFPLEVBQ04sU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUNsRSxTQUFTLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztXQWlCekQsb0JBQW9CO0FBS2pDLElBQWEsd0JBQXdCLGdDQUFyQyxNQUFhLHdCQUF3QjtJQTZDcEMsWUFBb0IsZUFBNEI7UUFBNUIsb0JBQWUsR0FBZixlQUFlLENBQWE7UUE1Q3ZDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCx1QkFBa0IsR0FBa0IsRUFBRSxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixhQUFRLEdBQUcsY0FBYyxDQUFDO1FBQzFCLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUNsQyw0QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDL0Isc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHVCQUFrQixHQUF5QixDQUFDLGtC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Ozt5RUFBZ0M7QUFDL0I7SUFBUixLQUFLLEVBQUU7O21FQUEyQjtBQUMxQjtJQUFSLEtBQUssRUFBRTs7b0VBQXFFO0FBQ3BFO0lBQVIsS0FBSyxFQUFFOzswRUFBNkM7QUFDNUM7SUFBUixLQUFLLEVBQUU7OzJEQUFnQjtBQUNmO0lBQVIsS0FBSyxFQUFFOzs4REFBNEI7QUFDM0I7SUFBUixLQUFLLEVBQUU7O29FQUEyQjtBQUMxQjtJQUFSLEtBQUssRUFBRTs7b0VBQWdDO0FBQy9CO0lBQVIsS0FBSyxFQUFFOztpRUFBd0I7QUFDdkI7SUFBUixLQUFLLEVBQUU7O3lEQUFtQjtBQUNsQjtJQUFSLEtBQUssRUFBRTs7a0VBQTBCO0FBR3hCO0lBQVQsTUFBTSxFQUFFOzsrREFBc0Q7QUFxQnJDO0lBQXpCLFNBQVMsQ0FBQyxhQUFhLENBQUM7OEJBQWMsVUFBVTs2REFBQztBQXhDdEMsd0JBQXdCO0lBcEJwQyxTQUFTLENBQUM7UUFDViwrQ0FBK0M7UUFDL0MsUUFBUSxFQUFFLG9CQUFvQjtRQUM5QixnbUZBQWtEO1FBRWxELFNBQVMsRUFBRTtZQUNWLFdBQVc7WUFDWDtnQkFDQyxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQiwwQ0FBMEM7Z0JBQzFDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQXdCLENBQUM7Z0JBQ3ZELEtBQUssRUFBRSxJQUFJO2FBQ1g7WUFDRDtnQkFDQyxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsUUFBUSxJQUFzQjtnQkFDOUIsS0FBSyxFQUFFLElBQUk7YUFDWDtTQUNEOztLQUNELENBQUM7cUNBOENvQyxXQUFXO0dBN0NwQyx3QkFBd0IsQ0ErYXBDO1NBL2FZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGxwbiBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuXG5pbXBvcnQge1xuXHRDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb3VudHJ5Q29kZSB9IGZyb20gJy4vZGF0YS9jb3VudHJ5LWNvZGUnO1xuaW1wb3J0IHsgQ291bnRyeUlTTyB9IGZyb20gJy4vZW51bXMvY291bnRyeS1pc28uZW51bSc7XG5pbXBvcnQgeyBTZWFyY2hDb3VudHJ5RmllbGQgfSBmcm9tICcuL2VudW1zL3NlYXJjaC1jb3VudHJ5LWZpZWxkLmVudW0nO1xuaW1wb3J0IHsgVG9vbHRpcExhYmVsIH0gZnJvbSAnLi9lbnVtcy90b29sdGlwLWxhYmVsLmVudW0nO1xuaW1wb3J0IHsgQ2hhbmdlRGF0YSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jaGFuZ2UtZGF0YSc7XG5pbXBvcnQgeyBDb3VudHJ5IH0gZnJvbSAnLi9tb2RlbC9jb3VudHJ5Lm1vZGVsJztcbmltcG9ydCB7IHBob25lTnVtYmVyVmFsaWRhdG9yIH0gZnJvbSAnLi9uZ3gtaW50bC10ZWwtaW5wdXQudmFsaWRhdG9yJztcblxuQENvbXBvbmVudCh7XG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogY29tcG9uZW50LXNlbGVjdG9yXG5cdHNlbGVjdG9yOiAnbmd4LWludGwtdGVsLWlucHV0Jyxcblx0dGVtcGxhdGVVcmw6ICcuL25neC1pbnRsLXRlbC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL25neC1pbnRsLXRlbC1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG5cdHByb3ZpZGVyczogW1xuXHRcdENvdW50cnlDb2RlLFxuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuXHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWZvcndhcmQtcmVmXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ3hJbnRsVGVsSW5wdXRDb21wb25lbnQpLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuXHRcdFx0dXNlVmFsdWU6IHBob25lTnVtYmVyVmFsaWRhdG9yLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4SW50bFRlbElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXHRASW5wdXQoKSB2YWx1ZSA9ICcnO1xuXHRASW5wdXQoKSBwcmVmZXJyZWRDb3VudHJpZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0QElucHV0KCkgZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xuXHRASW5wdXQoKSBjc3NDbGFzcyA9ICdmb3JtLWNvbnRyb2wnO1xuXHRASW5wdXQoKSBvbmx5Q291bnRyaWVzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cdEBJbnB1dCgpIGVuYWJsZUF1dG9Db3VudHJ5U2VsZWN0ID0gdHJ1ZTtcblx0QElucHV0KCkgc2VhcmNoQ291bnRyeUZsYWcgPSBmYWxzZTtcblx0QElucHV0KCkgc2VhcmNoQ291bnRyeUZpZWxkOiBTZWFyY2hDb3VudHJ5RmllbGRbXSA9IFtTZWFyY2hDb3VudHJ5RmllbGQuQWxsXTtcblx0QElucHV0KCkgc2VhcmNoQ291bnRyeVBsYWNlaG9sZGVyID0gJ1NlYXJjaCBDb3VudHJ5Jztcblx0QElucHV0KCkgbWF4TGVuZ3RoID0gJyc7XG5cdEBJbnB1dCgpIHRvb2x0aXBGaWVsZDogVG9vbHRpcExhYmVsO1xuXHRASW5wdXQoKSBzZWxlY3RGaXJzdENvdW50cnkgPSB0cnVlO1xuXHRASW5wdXQoKSBzZWxlY3RlZENvdW50cnlJU086IENvdW50cnlJU087XG5cdEBJbnB1dCgpIHBob25lVmFsaWRhdGlvbiA9IHRydWU7XG5cdEBJbnB1dCgpIGlucHV0SWQgPSAncGhvbmUnO1xuXHRASW5wdXQoKSBzZXBhcmF0ZURpYWxDb2RlID0gZmFsc2U7XG5cdHNlcGFyYXRlRGlhbENvZGVDbGFzczogc3RyaW5nO1xuXG5cdEBPdXRwdXQoKSByZWFkb25seSBjb3VudHJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5PigpO1xuXG5cdHNlbGVjdGVkQ291bnRyeTogQ291bnRyeSA9IHtcblx0XHRhcmVhQ29kZXM6IHVuZGVmaW5lZCxcblx0XHRkaWFsQ29kZTogJycsXG5cdFx0ZmxhZ0NsYXNzOiAnJyxcblx0XHRpc28yOiAnJyxcblx0XHRuYW1lOiAnJyxcblx0XHRwbGFjZUhvbGRlcjogJycsXG5cdFx0cHJpb3JpdHk6IDAsXG5cdH07XG5cblx0cGhvbmVOdW1iZXIgPSAnJztcblx0YWxsQ291bnRyaWVzOiBBcnJheTxDb3VudHJ5PiA9IFtdO1xuXHRwcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duOiBBcnJheTxDb3VudHJ5PiA9IFtdO1xuXHQvLyBIYXMgdG8gYmUgJ2FueScgdG8gcHJldmVudCBhIG5lZWQgdG8gaW5zdGFsbCBAdHlwZXMvZ29vZ2xlLWxpYnBob25lbnVtYmVyIGJ5IHRoZSBwYWNrYWdlIHVzZXIuLi5cblx0cGhvbmVVdGlsOiBhbnkgPSBscG4uUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG5cdGRpc2FibGVkID0gZmFsc2U7XG5cdGVycm9yczogQXJyYXk8YW55PiA9IFsnUGhvbmUgbnVtYmVyIGlzIHJlcXVpcmVkLiddO1xuXHRjb3VudHJ5U2VhcmNoVGV4dCA9ICcnO1xuXG5cdEBWaWV3Q2hpbGQoJ2NvdW50cnlMaXN0JykgY291bnRyeUxpc3Q6IEVsZW1lbnRSZWY7XG5cblx0b25Ub3VjaGVkID0gKCkgPT4ge307XG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBDaGFuZ2VEYXRhKSA9PiB7fTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGNvdW50cnlDb2RlRGF0YTogQ291bnRyeUNvZGUpIHt9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5pbml0KCk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRJU08gPSBjaGFuZ2VzWydzZWxlY3RlZENvdW50cnlJU08nXTtcblx0XHRpZiAoXG5cdFx0XHR0aGlzLmFsbENvdW50cmllcyAmJlxuXHRcdFx0c2VsZWN0ZWRJU08gJiZcblx0XHRcdHNlbGVjdGVkSVNPLmN1cnJlbnRWYWx1ZSAhPT0gc2VsZWN0ZWRJU08ucHJldmlvdXNWYWx1ZVxuXHRcdCkge1xuXHRcdFx0dGhpcy5nZXRTZWxlY3RlZENvdW50cnkoKTtcblx0XHR9XG5cdFx0aWYgKGNoYW5nZXMucHJlZmVycmVkQ291bnRyaWVzKSB7XG5cdFx0XHR0aGlzLmdldFByZWZlcnJlZENvdW50cmllcygpO1xuXHRcdH1cblx0XHR0aGlzLmNoZWNrU2VwYXJhdGVEaWFsQ29kZVN0eWxlKCk7XG5cdH1cblxuXHQvKlxuXHRcdFRoaXMgaXMgYSB3cmFwcGVyIG1ldGhvZCB0byBhdm9pZCBjYWxsaW5nIHRoaXMubmdPbkluaXQoKSBpbiB3cml0ZVZhbHVlKCkuXG5cdFx0UmVmOiBodHRwOi8vY29kZWx5emVyLmNvbS9ydWxlcy9uby1saWZlLWN5Y2xlLWNhbGwvXG5cdCovXG5cdGluaXQoKSB7XG5cdFx0dGhpcy5mZXRjaENvdW50cnlEYXRhKCk7XG5cdFx0aWYgKHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5nZXRQcmVmZXJyZWRDb3VudHJpZXMoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMub25seUNvdW50cmllcy5sZW5ndGgpIHtcblx0XHRcdHRoaXMuYWxsQ291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PlxuXHRcdFx0XHR0aGlzLm9ubHlDb3VudHJpZXMuaW5jbHVkZXMoYy5pc28yKVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuc2VsZWN0Rmlyc3RDb3VudHJ5KSB7XG5cdFx0XHRpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLmxlbmd0aCkge1xuXHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkQ291bnRyeSh0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd25bMF0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zZXRTZWxlY3RlZENvdW50cnkodGhpcy5hbGxDb3VudHJpZXNbMF0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLmdldFNlbGVjdGVkQ291bnRyeSgpO1xuXHRcdHRoaXMuY2hlY2tTZXBhcmF0ZURpYWxDb2RlU3R5bGUoKTtcblx0fVxuXG5cdGdldFByZWZlcnJlZENvdW50cmllcygpIHtcblx0XHRpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24gPSBbXTtcblx0XHRcdHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmZvckVhY2goKGlzbzIpID0+IHtcblx0XHRcdFx0Y29uc3QgcHJlZmVycmVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbHRlcigoYykgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBjLmlzbzIgPT09IGlzbzI7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bi5wdXNoKHByZWZlcnJlZENvdW50cnlbMF0pO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0U2VsZWN0ZWRDb3VudHJ5KCkge1xuXHRcdGlmICh0aGlzLnNlbGVjdGVkQ291bnRyeUlTTykge1xuXHRcdFx0dGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmFsbENvdW50cmllcy5maW5kKChjKSA9PiB7XG5cdFx0XHRcdHJldHVybiBjLmlzbzIudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy5zZWxlY3RlZENvdW50cnlJU08udG9Mb3dlckNhc2UoKTtcblx0XHRcdH0pO1xuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5KSB7XG5cdFx0XHRcdGlmICh0aGlzLnBob25lTnVtYmVyKSB7XG5cdFx0XHRcdFx0dGhpcy5vblBob25lTnVtYmVyQ2hhbmdlKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gUmVhc29uOiBhdm9pZCBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNTQzNTgxMzMvMTYxNzU5MFxuXHRcdFx0XHRcdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbnVsbC1rZXl3b3JkXG5cdFx0XHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRzZXRTZWxlY3RlZENvdW50cnkoY291bnRyeTogQ291bnRyeSkge1xuXHRcdHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcblx0XHR0aGlzLmNvdW50cnlDaGFuZ2UuZW1pdChjb3VudHJ5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWFyY2ggY291bnRyeSBiYXNlZCBvbiBjb3VudHJ5IG5hbWUsIGlzbzIsIGRpYWxDb2RlIG9yIGFsbCBvZiB0aGVtLlxuXHQgKi9cblx0c2VhcmNoQ291bnRyeSgpIHtcblx0XHRpZiAoIXRoaXMuY291bnRyeVNlYXJjaFRleHQpIHtcblx0XHRcdHRoaXMuY291bnRyeUxpc3QubmF0aXZlRWxlbWVudFxuXHRcdFx0XHQucXVlcnlTZWxlY3RvcignLmNvdW50cnktbGlzdCBsaScpXG5cdFx0XHRcdC5zY3JvbGxJbnRvVmlldyh7XG5cdFx0XHRcdFx0YmVoYXZpb3I6ICdzbW9vdGgnLFxuXHRcdFx0XHRcdGJsb2NrOiAnbmVhcmVzdCcsXG5cdFx0XHRcdFx0aW5saW5lOiAnbmVhcmVzdCcsXG5cdFx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBjb3VudHJ5U2VhcmNoVGV4dExvd2VyID0gdGhpcy5jb3VudHJ5U2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpO1xuXHRcdGNvbnN0IGNvdW50cnkgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoKGMpID0+IHtcblx0XHRcdGlmICh0aGlzLnNlYXJjaENvdW50cnlGaWVsZC5pbmRleE9mKFNlYXJjaENvdW50cnlGaWVsZC5BbGwpID4gLTEpIHtcblx0XHRcdFx0Ly8gU2VhcmNoIGluIGFsbCBmaWVsZHNcblx0XHRcdFx0aWYgKGMuaXNvMi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoY291bnRyeVNlYXJjaFRleHRMb3dlcikpIHtcblx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoYy5uYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChjb3VudHJ5U2VhcmNoVGV4dExvd2VyKSkge1xuXHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjLmRpYWxDb2RlLnN0YXJ0c1dpdGgodGhpcy5jb3VudHJ5U2VhcmNoVGV4dCkpIHtcblx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gT3Igc2VhcmNoIGJ5IHNwZWNpZmljIFNlYXJjaENvdW50cnlGaWVsZChzKVxuXHRcdFx0XHRpZiAodGhpcy5zZWFyY2hDb3VudHJ5RmllbGQuaW5kZXhPZihTZWFyY2hDb3VudHJ5RmllbGQuSXNvMikgPiAtMSkge1xuXHRcdFx0XHRcdGlmIChjLmlzbzIudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKGNvdW50cnlTZWFyY2hUZXh0TG93ZXIpKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuc2VhcmNoQ291bnRyeUZpZWxkLmluZGV4T2YoU2VhcmNoQ291bnRyeUZpZWxkLk5hbWUpID4gLTEpIHtcblx0XHRcdFx0XHRpZiAoYy5uYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChjb3VudHJ5U2VhcmNoVGV4dExvd2VyKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLnNlYXJjaENvdW50cnlGaWVsZC5pbmRleE9mKFNlYXJjaENvdW50cnlGaWVsZC5EaWFsQ29kZSkgPiAtMSkge1xuXHRcdFx0XHRcdGlmIChjLmRpYWxDb2RlLnN0YXJ0c1dpdGgodGhpcy5jb3VudHJ5U2VhcmNoVGV4dCkpIHtcblx0XHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aWYgKGNvdW50cnkubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc3QgZWwgPSB0aGlzLmNvdW50cnlMaXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcihcblx0XHRcdFx0JyMnICsgY291bnRyeVswXS5pc28yXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGVsKSB7XG5cdFx0XHRcdGVsLnNjcm9sbEludG9WaWV3KHtcblx0XHRcdFx0XHRiZWhhdmlvcjogJ3Ntb290aCcsXG5cdFx0XHRcdFx0YmxvY2s6ICduZWFyZXN0Jyxcblx0XHRcdFx0XHRpbmxpbmU6ICduZWFyZXN0Jyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXHR9XG5cblx0cHVibGljIG9uUGhvbmVOdW1iZXJDaGFuZ2UoKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMucGhvbmVOdW1iZXI7XG5cblx0XHRsZXQgbnVtYmVyOiBscG4uUGhvbmVOdW1iZXI7XG5cdFx0dHJ5IHtcblx0XHRcdG51bWJlciA9IHRoaXMucGhvbmVVdGlsLnBhcnNlKFxuXHRcdFx0XHR0aGlzLnBob25lTnVtYmVyLFxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yLnRvVXBwZXJDYXNlKClcblx0XHRcdCk7XG5cdFx0fSBjYXRjaCAoZSkge31cblxuXHRcdGxldCBjb3VudHJ5Q29kZSA9IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzI7XG5cdFx0Ly8gYXV0byBzZWxlY3QgY291bnRyeSBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIChhbmQgYXJlYUNvZGUgaWYgbmVlZGVkKSAoZS5nIHNlbGVjdCBDYW5hZGEgaWYgbnVtYmVyIHN0YXJ0cyB3aXRoICsxIDQxNilcblx0XHRpZiAodGhpcy5lbmFibGVBdXRvQ291bnRyeVNlbGVjdCkge1xuXHRcdFx0Y291bnRyeUNvZGUgPVxuXHRcdFx0XHRudW1iZXIgJiYgbnVtYmVyLmdldENvdW50cnlDb2RlKClcblx0XHRcdFx0XHQ/IHRoaXMuZ2V0Q291bnRyeUlzb0NvZGUobnVtYmVyLmdldENvdW50cnlDb2RlKCksIG51bWJlcilcblx0XHRcdFx0XHQ6IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzI7XG5cdFx0XHRpZiAoY291bnRyeUNvZGUgJiYgY291bnRyeUNvZGUgIT09IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIpIHtcblx0XHRcdFx0Y29uc3QgbmV3Q291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbmQoXG5cdFx0XHRcdFx0KGMpID0+IGMuaXNvMiA9PT0gY291bnRyeUNvZGVcblx0XHRcdFx0KTtcblx0XHRcdFx0aWYgKG5ld0NvdW50cnkpIHtcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkQ291bnRyeSA9IG5ld0NvdW50cnk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Y291bnRyeUNvZGUgPSBjb3VudHJ5Q29kZSA/IGNvdW50cnlDb2RlIDogdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMjtcblxuXHRcdHRoaXMuY2hlY2tTZXBhcmF0ZURpYWxDb2RlU3R5bGUoKTtcblxuXHRcdGlmICghdGhpcy52YWx1ZSkge1xuXHRcdFx0Ly8gUmVhc29uOiBhdm9pZCBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNTQzNTgxMzMvMTYxNzU5MFxuXHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1udWxsLWtleXdvcmRcblx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBpbnRsTm8gPSBudW1iZXJcblx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTClcblx0XHRcdFx0OiAnJztcblxuXHRcdFx0Ly8gcGFyc2UgcGhvbmVOdW1iZXIgaWYgc2VwYXJhdGUgZGlhbCBjb2RlIGlzIG5lZWRlZFxuXHRcdFx0aWYgKHRoaXMuc2VwYXJhdGVEaWFsQ29kZSAmJiBpbnRsTm8pIHtcblx0XHRcdFx0dGhpcy52YWx1ZSA9IHRoaXMucmVtb3ZlRGlhbENvZGUoaW50bE5vKTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2Uoe1xuXHRcdFx0XHRudW1iZXI6IHRoaXMudmFsdWUsXG5cdFx0XHRcdGludGVybmF0aW9uYWxOdW1iZXI6IGludGxObyxcblx0XHRcdFx0bmF0aW9uYWxOdW1iZXI6IG51bWJlclxuXHRcdFx0XHRcdD8gdGhpcy5waG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbHBuLlBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMKVxuXHRcdFx0XHRcdDogJycsXG5cdFx0XHRcdGUxNjROdW1iZXI6IG51bWJlclxuXHRcdFx0XHRcdD8gdGhpcy5waG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbHBuLlBob25lTnVtYmVyRm9ybWF0LkUxNjQpXG5cdFx0XHRcdFx0OiAnJyxcblx0XHRcdFx0Y291bnRyeUNvZGU6IGNvdW50cnlDb2RlLnRvVXBwZXJDYXNlKCksXG5cdFx0XHRcdGRpYWxDb2RlOiAnKycgKyB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSxcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBvbkNvdW50cnlTZWxlY3QoY291bnRyeTogQ291bnRyeSwgZWwpOiB2b2lkIHtcblx0XHR0aGlzLnNldFNlbGVjdGVkQ291bnRyeShjb3VudHJ5KTtcblxuXHRcdHRoaXMuY2hlY2tTZXBhcmF0ZURpYWxDb2RlU3R5bGUoKTtcblxuXHRcdGlmICh0aGlzLnBob25lTnVtYmVyICYmIHRoaXMucGhvbmVOdW1iZXIubGVuZ3RoID4gMCkge1xuXHRcdFx0dGhpcy52YWx1ZSA9IHRoaXMucGhvbmVOdW1iZXI7XG5cblx0XHRcdGxldCBudW1iZXI6IGxwbi5QaG9uZU51bWJlcjtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG51bWJlciA9IHRoaXMucGhvbmVVdGlsLnBhcnNlKFxuXHRcdFx0XHRcdHRoaXMucGhvbmVOdW1iZXIsXG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMi50b1VwcGVyQ2FzZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGNhdGNoIChlKSB7fVxuXG5cdFx0XHRjb25zdCBpbnRsTm8gPSBudW1iZXJcblx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTClcblx0XHRcdFx0OiAnJztcblxuXHRcdFx0Ly8gcGFyc2UgcGhvbmVOdW1iZXIgaWYgc2VwYXJhdGUgZGlhbCBjb2RlIGlzIG5lZWRlZFxuXHRcdFx0aWYgKHRoaXMuc2VwYXJhdGVEaWFsQ29kZSAmJiBpbnRsTm8pIHtcblx0XHRcdFx0dGhpcy52YWx1ZSA9IHRoaXMucmVtb3ZlRGlhbENvZGUoaW50bE5vKTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2Uoe1xuXHRcdFx0XHRudW1iZXI6IHRoaXMudmFsdWUsXG5cdFx0XHRcdGludGVybmF0aW9uYWxOdW1iZXI6IGludGxObyxcblx0XHRcdFx0bmF0aW9uYWxOdW1iZXI6IG51bWJlclxuXHRcdFx0XHRcdD8gdGhpcy5waG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbHBuLlBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMKVxuXHRcdFx0XHRcdDogJycsXG5cdFx0XHRcdGUxNjROdW1iZXI6IG51bWJlclxuXHRcdFx0XHRcdD8gdGhpcy5waG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbHBuLlBob25lTnVtYmVyRm9ybWF0LkUxNjQpXG5cdFx0XHRcdFx0OiAnJyxcblx0XHRcdFx0Y291bnRyeUNvZGU6IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKSxcblx0XHRcdFx0ZGlhbENvZGU6ICcrJyArIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlLFxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFJlYXNvbjogYXZvaWQgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzU0MzU4MTMzLzE2MTc1OTBcblx0XHRcdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbnVsbC1rZXl3b3JkXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcblx0XHR9XG5cblx0XHRlbC5mb2N1cygpO1xuXHR9XG5cblx0cHVibGljIG9uSW5wdXRLZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IGFsbG93ZWRDaGFycyA9IC9bMC05XFwrXFwtXFwgXS87XG5cdFx0Y29uc3QgYWxsb3dlZEN0cmxDaGFycyA9IC9bYXhjdl0vOyAvLyBBbGxvd3MgY29weS1wYXN0aW5nXG5cdFx0Y29uc3QgYWxsb3dlZE90aGVyS2V5cyA9IFtcblx0XHRcdCdBcnJvd0xlZnQnLFxuXHRcdFx0J0Fycm93VXAnLFxuXHRcdFx0J0Fycm93UmlnaHQnLFxuXHRcdFx0J0Fycm93RG93bicsXG5cdFx0XHQnSG9tZScsXG5cdFx0XHQnRW5kJyxcblx0XHRcdCdJbnNlcnQnLFxuXHRcdFx0J0RlbGV0ZScsXG5cdFx0XHQnQmFja3NwYWNlJyxcblx0XHRdO1xuXG5cdFx0aWYgKFxuXHRcdFx0IWFsbG93ZWRDaGFycy50ZXN0KGV2ZW50LmtleSkgJiZcblx0XHRcdCEoZXZlbnQuY3RybEtleSAmJiBhbGxvd2VkQ3RybENoYXJzLnRlc3QoZXZlbnQua2V5KSkgJiZcblx0XHRcdCFhbGxvd2VkT3RoZXJLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSlcblx0XHQpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIGZldGNoQ291bnRyeURhdGEoKTogdm9pZCB7XG5cdFx0LyogQ2xlYXJpbmcgdGhlIGxpc3QgdG8gYXZvaWQgZHVwbGljYXRlcyAoaHR0cHM6Ly9naXRodWIuY29tL3dlYmNhdDEyMzQ1L25neC1pbnRsLXRlbC1pbnB1dC9pc3N1ZXMvMjQ4KSAqL1xuXHRcdHRoaXMuYWxsQ291bnRyaWVzID0gW107XG5cblx0XHR0aGlzLmNvdW50cnlDb2RlRGF0YS5hbGxDb3VudHJpZXMuZm9yRWFjaCgoYykgPT4ge1xuXHRcdFx0Y29uc3QgY291bnRyeTogQ291bnRyeSA9IHtcblx0XHRcdFx0bmFtZTogY1swXS50b1N0cmluZygpLFxuXHRcdFx0XHRpc28yOiBjWzFdLnRvU3RyaW5nKCksXG5cdFx0XHRcdGRpYWxDb2RlOiBjWzJdLnRvU3RyaW5nKCksXG5cdFx0XHRcdHByaW9yaXR5OiArY1szXSB8fCAwLFxuXHRcdFx0XHRhcmVhQ29kZXM6IChjWzRdIGFzIHN0cmluZ1tdKSB8fCB1bmRlZmluZWQsXG5cdFx0XHRcdGZsYWdDbGFzczogY1sxXS50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKCksXG5cdFx0XHRcdHBsYWNlSG9sZGVyOiAnJyxcblx0XHRcdH07XG5cblx0XHRcdGlmICh0aGlzLmVuYWJsZVBsYWNlaG9sZGVyKSB7XG5cdFx0XHRcdGNvdW50cnkucGxhY2VIb2xkZXIgPSB0aGlzLmdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoXG5cdFx0XHRcdFx0Y291bnRyeS5pc28yLnRvVXBwZXJDYXNlKClcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5hbGxDb3VudHJpZXMucHVzaChjb3VudHJ5KTtcblx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRQaG9uZU51bWJlclBsYWNlSG9sZGVyKGNvdW50cnlDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5waG9uZVV0aWwuZm9ybWF0KFxuXHRcdFx0XHR0aGlzLnBob25lVXRpbC5nZXRFeGFtcGxlTnVtYmVyKGNvdW50cnlDb2RlKSxcblx0XHRcdFx0bHBuLlBob25lTnVtYmVyRm9ybWF0LklOVEVSTkFUSU9OQUxcblx0XHRcdCk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0cmV0dXJuIGU7XG5cdFx0fVxuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2hlZCA9IGZuO1xuXHR9XG5cblx0c2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cdH1cblxuXHR3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG5cdFx0aWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aGlzLmluaXQoKTtcblx0XHR9XG5cdFx0dGhpcy5waG9uZU51bWJlciA9IG9iajtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMub25QaG9uZU51bWJlckNoYW5nZSgpO1xuXHRcdH0sIDEpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRDb3VudHJ5SXNvQ29kZShcblx0XHRjb3VudHJ5Q29kZTogbnVtYmVyLFxuXHRcdG51bWJlcjogbHBuLlBob25lTnVtYmVyXG5cdCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gV2lsbCB1c2UgdGhpcyB0byBtYXRjaCBhcmVhIGNvZGUgZnJvbSB0aGUgZmlyc3QgbnVtYmVyc1xuXHRcdGNvbnN0IHJhd051bWJlciA9IG51bWJlclsndmFsdWVzXyddWycyJ10udG9TdHJpbmcoKTtcblx0XHQvLyBMaXN0IG9mIGFsbCBjb3VudHJpZXMgd2l0aCBjb3VudHJ5Q29kZSAoY2FuIGJlIG1vcmUgdGhhbiBvbmUuIGUueC4gVVMsIENBLCBETywgUFIgYWxsIGhhdmUgKzEgY291bnRyeUNvZGUpXG5cdFx0Y29uc3QgY291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKFxuXHRcdFx0KGMpID0+IGMuZGlhbENvZGUgPT09IGNvdW50cnlDb2RlLnRvU3RyaW5nKClcblx0XHQpO1xuXHRcdC8vIE1haW4gY291bnRyeSBpcyB0aGUgY291bnRyeSwgd2hpY2ggaGFzIG5vIGFyZWFDb2RlcyBzcGVjaWZpZWQgaW4gY291bnRyeS1jb2RlLnRzIGZpbGUuXG5cdFx0Y29uc3QgbWFpbkNvdW50cnkgPSBjb3VudHJpZXMuZmluZCgoYykgPT4gYy5hcmVhQ29kZXMgPT09IHVuZGVmaW5lZCk7XG5cdFx0Ly8gU2Vjb25kYXJ5IGNvdW50cmllcyBhcmUgYWxsIGNvdW50cmllcywgd2hpY2ggaGF2ZSBhcmVhQ29kZXMgc3BlY2lmaWVkIGluIGNvdW50cnktY29kZS50cyBmaWxlLlxuXHRcdGNvbnN0IHNlY29uZGFyeUNvdW50cmllcyA9IGNvdW50cmllcy5maWx0ZXIoXG5cdFx0XHQoYykgPT4gYy5hcmVhQ29kZXMgIT09IHVuZGVmaW5lZFxuXHRcdCk7XG5cdFx0bGV0IG1hdGNoZWRDb3VudHJ5ID0gbWFpbkNvdW50cnkgPyBtYWluQ291bnRyeS5pc28yIDogdW5kZWZpbmVkO1xuXG5cdFx0Lypcblx0XHRcdEl0ZXJhdGUgb3ZlciBlYWNoIHNlY29uZGFyeSBjb3VudHJ5IGFuZCBjaGVjayBpZiBuYXRpb25hbE51bWJlciBzdGFydHMgd2l0aCBhbnkgb2YgYXJlYUNvZGVzIGF2YWlsYWJsZS5cblx0XHRcdElmIG5vIG1hdGNoZXMgZm91bmQsIGZhbGxiYWNrIHRvIHRoZSBtYWluIGNvdW50cnkuXG5cdFx0Ki9cblx0XHRzZWNvbmRhcnlDb3VudHJpZXMuZm9yRWFjaCgoY291bnRyeSkgPT4ge1xuXHRcdFx0Y291bnRyeS5hcmVhQ29kZXMuZm9yRWFjaCgoYXJlYUNvZGUpID0+IHtcblx0XHRcdFx0aWYgKHJhd051bWJlci5zdGFydHNXaXRoKGFyZWFDb2RlKSkge1xuXHRcdFx0XHRcdG1hdGNoZWRDb3VudHJ5ID0gY291bnRyeS5pc28yO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHJldHVybiBtYXRjaGVkQ291bnRyeTtcblx0fVxuXG5cdHNlcGFyYXRlRGlhbENvZGVQbGFjZUhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5yZW1vdmVEaWFsQ29kZShwbGFjZWhvbGRlcik7XG5cdH1cblxuXHRwcml2YXRlIHJlbW92ZURpYWxDb2RlKHBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLnNlcGFyYXRlRGlhbENvZGUgJiYgcGhvbmVOdW1iZXIpIHtcblx0XHRcdHBob25lTnVtYmVyID0gcGhvbmVOdW1iZXIuc3Vic3RyKHBob25lTnVtYmVyLmluZGV4T2YoJyAnKSArIDEpO1xuXHRcdH1cblx0XHRyZXR1cm4gcGhvbmVOdW1iZXI7XG5cdH1cblxuXHQvLyBhZGp1c3QgaW5wdXQgYWxpZ25tZW50XG5cdHByaXZhdGUgY2hlY2tTZXBhcmF0ZURpYWxDb2RlU3R5bGUoKSB7XG5cdFx0aWYgKHRoaXMuc2VwYXJhdGVEaWFsQ29kZSAmJiB0aGlzLnNlbGVjdGVkQ291bnRyeSkge1xuXHRcdFx0Y29uc3QgY250cnlDZCA9IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlO1xuXHRcdFx0dGhpcy5zZXBhcmF0ZURpYWxDb2RlQ2xhc3MgPVxuXHRcdFx0XHQnc2VwYXJhdGUtZGlhbC1jb2RlIGl0aS1zZGMtJyArIChjbnRyeUNkLmxlbmd0aCArIDEpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnNlcGFyYXRlRGlhbENvZGVDbGFzcyA9ICcnO1xuXHRcdH1cblx0fVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1pbnRsLXRlbC1pbnB1dC8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtaW50bC10ZWwtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQztBQUU3QyxPQUFPLEVBQ04sU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUNsRSxTQUFTLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztXQWlCekQsb0JBQW9CO0FBS2pDLElBQWEsd0JBQXdCLGdDQUFyQyxNQUFhLHdCQUF3QjtJQTZDcEMsWUFBb0IsZUFBNEI7UUFBNUIsb0JBQWUsR0FBZixlQUFlLENBQWE7UUE1Q3ZDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCx1QkFBa0IsR0FBa0IsRUFBRSxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixhQUFRLEdBQUcsY0FBYyxDQUFDO1FBQzFCLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUNsQyw0QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDL0Isc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHVCQUFrQixHQUF5QixDQUFDLGtC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LENBQUM7cUNBOENvQyxXQUFXO0dBN0NwQyx3QkFBd0IsQ0F1YnBDO1NBdmJZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGxwbiBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuXG5pbXBvcnQge1xuXHRDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb3VudHJ5Q29kZSB9IGZyb20gJy4vZGF0YS9jb3VudHJ5LWNvZGUnO1xuaW1wb3J0IHsgQ291bnRyeUlTTyB9IGZyb20gJy4vZW51bXMvY291bnRyeS1pc28uZW51bSc7XG5pbXBvcnQgeyBTZWFyY2hDb3VudHJ5RmllbGQgfSBmcm9tICcuL2VudW1zL3NlYXJjaC1jb3VudHJ5LWZpZWxkLmVudW0nO1xuaW1wb3J0IHsgVG9vbHRpcExhYmVsIH0gZnJvbSAnLi9lbnVtcy90b29sdGlwLWxhYmVsLmVudW0nO1xuaW1wb3J0IHsgQ2hhbmdlRGF0YSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jaGFuZ2UtZGF0YSc7XG5pbXBvcnQgeyBDb3VudHJ5IH0gZnJvbSAnLi9tb2RlbC9jb3VudHJ5Lm1vZGVsJztcbmltcG9ydCB7IHBob25lTnVtYmVyVmFsaWRhdG9yIH0gZnJvbSAnLi9uZ3gtaW50bC10ZWwtaW5wdXQudmFsaWRhdG9yJztcblxuQENvbXBvbmVudCh7XG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogY29tcG9uZW50LXNlbGVjdG9yXG5cdHNlbGVjdG9yOiAnbmd4LWludGwtdGVsLWlucHV0Jyxcblx0dGVtcGxhdGVVcmw6ICcuL25neC1pbnRsLXRlbC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL25neC1pbnRsLXRlbC1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG5cdHByb3ZpZGVyczogW1xuXHRcdENvdW50cnlDb2RlLFxuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuXHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWZvcndhcmQtcmVmXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ3hJbnRsVGVsSW5wdXRDb21wb25lbnQpLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuXHRcdFx0dXNlVmFsdWU6IHBob25lTnVtYmVyVmFsaWRhdG9yLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4SW50bFRlbElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXHRASW5wdXQoKSB2YWx1ZSA9ICcnO1xuXHRASW5wdXQoKSBwcmVmZXJyZWRDb3VudHJpZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0QElucHV0KCkgZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xuXHRASW5wdXQoKSBjc3NDbGFzcyA9ICdmb3JtLWNvbnRyb2wnO1xuXHRASW5wdXQoKSBvbmx5Q291bnRyaWVzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cdEBJbnB1dCgpIGVuYWJsZUF1dG9Db3VudHJ5U2VsZWN0ID0gdHJ1ZTtcblx0QElucHV0KCkgc2VhcmNoQ291bnRyeUZsYWcgPSBmYWxzZTtcblx0QElucHV0KCkgc2VhcmNoQ291bnRyeUZpZWxkOiBTZWFyY2hDb3VudHJ5RmllbGRbXSA9IFtTZWFyY2hDb3VudHJ5RmllbGQuQWxsXTtcblx0QElucHV0KCkgc2VhcmNoQ291bnRyeVBsYWNlaG9sZGVyID0gJ1NlYXJjaCBDb3VudHJ5Jztcblx0QElucHV0KCkgbWF4TGVuZ3RoID0gJyc7XG5cdEBJbnB1dCgpIHRvb2x0aXBGaWVsZDogVG9vbHRpcExhYmVsO1xuXHRASW5wdXQoKSBzZWxlY3RGaXJzdENvdW50cnkgPSB0cnVlO1xuXHRASW5wdXQoKSBzZWxlY3RlZENvdW50cnlJU086IENvdW50cnlJU087XG5cdEBJbnB1dCgpIHBob25lVmFsaWRhdGlvbiA9IHRydWU7XG5cdEBJbnB1dCgpIGlucHV0SWQgPSAncGhvbmUnO1xuXHRASW5wdXQoKSBzZXBhcmF0ZURpYWxDb2RlID0gZmFsc2U7XG5cdHNlcGFyYXRlRGlhbENvZGVDbGFzczogc3RyaW5nO1xuXG5cdEBPdXRwdXQoKSByZWFkb25seSBjb3VudHJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5PigpO1xuXG5cdHNlbGVjdGVkQ291bnRyeTogQ291bnRyeSA9IHtcblx0XHRhcmVhQ29kZXM6IHVuZGVmaW5lZCxcblx0XHRkaWFsQ29kZTogJycsXG5cdFx0ZmxhZ0NsYXNzOiAnJyxcblx0XHRpc28yOiAnJyxcblx0XHRuYW1lOiAnJyxcblx0XHRwbGFjZUhvbGRlcjogJycsXG5cdFx0cHJpb3JpdHk6IDAsXG5cdH07XG5cblx0cGhvbmVOdW1iZXIgPSAnJztcblx0YWxsQ291bnRyaWVzOiBBcnJheTxDb3VudHJ5PiA9IFtdO1xuXHRwcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duOiBBcnJheTxDb3VudHJ5PiA9IFtdO1xuXHQvLyBIYXMgdG8gYmUgJ2FueScgdG8gcHJldmVudCBhIG5lZWQgdG8gaW5zdGFsbCBAdHlwZXMvZ29vZ2xlLWxpYnBob25lbnVtYmVyIGJ5IHRoZSBwYWNrYWdlIHVzZXIuLi5cblx0cGhvbmVVdGlsOiBhbnkgPSBscG4uUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG5cdGRpc2FibGVkID0gZmFsc2U7XG5cdGVycm9yczogQXJyYXk8YW55PiA9IFsnUGhvbmUgbnVtYmVyIGlzIHJlcXVpcmVkLiddO1xuXHRjb3VudHJ5U2VhcmNoVGV4dCA9ICcnO1xuXG5cdEBWaWV3Q2hpbGQoJ2NvdW50cnlMaXN0JykgY291bnRyeUxpc3Q6IEVsZW1lbnRSZWY7XG5cblx0b25Ub3VjaGVkID0gKCkgPT4ge307XG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBDaGFuZ2VEYXRhKSA9PiB7fTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGNvdW50cnlDb2RlRGF0YTogQ291bnRyeUNvZGUpIHt9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5pbml0KCk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRJU08gPSBjaGFuZ2VzWydzZWxlY3RlZENvdW50cnlJU08nXTtcblx0XHRpZiAoXG5cdFx0XHR0aGlzLmFsbENvdW50cmllcyAmJlxuXHRcdFx0c2VsZWN0ZWRJU08gJiZcblx0XHRcdHNlbGVjdGVkSVNPLmN1cnJlbnRWYWx1ZSAhPT0gc2VsZWN0ZWRJU08ucHJldmlvdXNWYWx1ZVxuXHRcdCkge1xuXHRcdFx0dGhpcy5nZXRTZWxlY3RlZENvdW50cnkoKTtcblx0XHR9XG5cdFx0aWYgKGNoYW5nZXMucHJlZmVycmVkQ291bnRyaWVzKSB7XG5cdFx0XHR0aGlzLmdldFByZWZlcnJlZENvdW50cmllcygpO1xuXHRcdH1cblx0XHR0aGlzLmNoZWNrU2VwYXJhdGVEaWFsQ29kZVN0eWxlKCk7XG5cdH1cblxuXHQvKlxuXHRcdFRoaXMgaXMgYSB3cmFwcGVyIG1ldGhvZCB0byBhdm9pZCBjYWxsaW5nIHRoaXMubmdPbkluaXQoKSBpbiB3cml0ZVZhbHVlKCkuXG5cdFx0UmVmOiBodHRwOi8vY29kZWx5emVyLmNvbS9ydWxlcy9uby1saWZlLWN5Y2xlLWNhbGwvXG5cdCovXG5cdGluaXQoKSB7XG5cdFx0dGhpcy5mZXRjaENvdW50cnlEYXRhKCk7XG5cdFx0aWYgKHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5nZXRQcmVmZXJyZWRDb3VudHJpZXMoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMub25seUNvdW50cmllcy5sZW5ndGgpIHtcblx0XHRcdHRoaXMuYWxsQ291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PlxuXHRcdFx0XHR0aGlzLm9ubHlDb3VudHJpZXMuaW5jbHVkZXMoYy5pc28yKVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuc2VsZWN0Rmlyc3RDb3VudHJ5KSB7XG5cdFx0XHRpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLmxlbmd0aCkge1xuXHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkQ291bnRyeSh0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd25bMF0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zZXRTZWxlY3RlZENvdW50cnkodGhpcy5hbGxDb3VudHJpZXNbMF0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLmdldFNlbGVjdGVkQ291bnRyeSgpO1xuXHRcdHRoaXMuY2hlY2tTZXBhcmF0ZURpYWxDb2RlU3R5bGUoKTtcblx0fVxuXG5cdGdldFByZWZlcnJlZENvdW50cmllcygpIHtcblx0XHRpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24gPSBbXTtcblx0XHRcdHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmZvckVhY2goKGlzbzIpID0+IHtcblx0XHRcdFx0Y29uc3QgcHJlZmVycmVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbHRlcigoYykgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBjLmlzbzIgPT09IGlzbzI7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bi5wdXNoKHByZWZlcnJlZENvdW50cnlbMF0pO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0U2VsZWN0ZWRDb3VudHJ5KCkge1xuXHRcdGlmICh0aGlzLnNlbGVjdGVkQ291bnRyeUlTTykge1xuXHRcdFx0dGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmFsbENvdW50cmllcy5maW5kKChjKSA9PiB7XG5cdFx0XHRcdHJldHVybiBjLmlzbzIudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy5zZWxlY3RlZENvdW50cnlJU08udG9Mb3dlckNhc2UoKTtcblx0XHRcdH0pO1xuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5KSB7XG5cdFx0XHRcdGlmICh0aGlzLnBob25lTnVtYmVyKSB7XG5cdFx0XHRcdFx0dGhpcy5vblBob25lTnVtYmVyQ2hhbmdlKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gUmVhc29uOiBhdm9pZCBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNTQzNTgxMzMvMTYxNzU5MFxuXHRcdFx0XHRcdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbnVsbC1rZXl3b3JkXG5cdFx0XHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRzZXRTZWxlY3RlZENvdW50cnkoY291bnRyeTogQ291bnRyeSkge1xuXHRcdHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcblx0XHR0aGlzLmNvdW50cnlDaGFuZ2UuZW1pdChjb3VudHJ5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWFyY2ggY291bnRyeSBiYXNlZCBvbiBjb3VudHJ5IG5hbWUsIGlzbzIsIGRpYWxDb2RlIG9yIGFsbCBvZiB0aGVtLlxuXHQgKi9cblx0c2VhcmNoQ291bnRyeSgpIHtcblx0XHRpZiAoIXRoaXMuY291bnRyeVNlYXJjaFRleHQpIHtcblx0XHRcdHRoaXMuY291bnRyeUxpc3QubmF0aXZlRWxlbWVudFxuXHRcdFx0XHQucXVlcnlTZWxlY3RvcignLmNvdW50cnktbGlzdCBsaScpXG5cdFx0XHRcdC5zY3JvbGxJbnRvVmlldyh7XG5cdFx0XHRcdFx0YmVoYXZpb3I6ICdzbW9vdGgnLFxuXHRcdFx0XHRcdGJsb2NrOiAnbmVhcmVzdCcsXG5cdFx0XHRcdFx0aW5saW5lOiAnbmVhcmVzdCcsXG5cdFx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBjb3VudHJ5U2VhcmNoVGV4dExvd2VyID0gdGhpcy5jb3VudHJ5U2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpO1xuXHRcdGNvbnN0IGNvdW50cnkgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoKGMpID0+IHtcblx0XHRcdGlmICh0aGlzLnNlYXJjaENvdW50cnlGaWVsZC5pbmRleE9mKFNlYXJjaENvdW50cnlGaWVsZC5BbGwpID4gLTEpIHtcblx0XHRcdFx0Ly8gU2VhcmNoIGluIGFsbCBmaWVsZHNcblx0XHRcdFx0aWYgKGMuaXNvMi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoY291bnRyeVNlYXJjaFRleHRMb3dlcikpIHtcblx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoYy5uYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChjb3VudHJ5U2VhcmNoVGV4dExvd2VyKSkge1xuXHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjLmRpYWxDb2RlLnN0YXJ0c1dpdGgodGhpcy5jb3VudHJ5U2VhcmNoVGV4dCkpIHtcblx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gT3Igc2VhcmNoIGJ5IHNwZWNpZmljIFNlYXJjaENvdW50cnlGaWVsZChzKVxuXHRcdFx0XHRpZiAodGhpcy5zZWFyY2hDb3VudHJ5RmllbGQuaW5kZXhPZihTZWFyY2hDb3VudHJ5RmllbGQuSXNvMikgPiAtMSkge1xuXHRcdFx0XHRcdGlmIChjLmlzbzIudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKGNvdW50cnlTZWFyY2hUZXh0TG93ZXIpKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuc2VhcmNoQ291bnRyeUZpZWxkLmluZGV4T2YoU2VhcmNoQ291bnRyeUZpZWxkLk5hbWUpID4gLTEpIHtcblx0XHRcdFx0XHRpZiAoYy5uYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChjb3VudHJ5U2VhcmNoVGV4dExvd2VyKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLnNlYXJjaENvdW50cnlGaWVsZC5pbmRleE9mKFNlYXJjaENvdW50cnlGaWVsZC5EaWFsQ29kZSkgPiAtMSkge1xuXHRcdFx0XHRcdGlmIChjLmRpYWxDb2RlLnN0YXJ0c1dpdGgodGhpcy5jb3VudHJ5U2VhcmNoVGV4dCkpIHtcblx0XHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aWYgKGNvdW50cnkubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc3QgZWwgPSB0aGlzLmNvdW50cnlMaXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcihcblx0XHRcdFx0JyMnICsgY291bnRyeVswXS5pc28yXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGVsKSB7XG5cdFx0XHRcdGVsLnNjcm9sbEludG9WaWV3KHtcblx0XHRcdFx0XHRiZWhhdmlvcjogJ3Ntb290aCcsXG5cdFx0XHRcdFx0YmxvY2s6ICduZWFyZXN0Jyxcblx0XHRcdFx0XHRpbmxpbmU6ICduZWFyZXN0Jyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXHR9XG5cblx0cHVibGljIG9uUGhvbmVOdW1iZXJDaGFuZ2UoKTogdm9pZCB7XG5cblx0XHRsZXQgY291bnRyeUNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHQvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHVzZXIgc2V0cyB0aGUgdmFsdWUgcHJvZ3JhbWF0aWNhbGx5IGJhc2VkIG9uIGEgcGVyc2lzdGVkIENoYW5nZURhdGEgb2JqLlxuXHRcdGlmICh0aGlzLnBob25lTnVtYmVyICYmIHR5cGVvZiB0aGlzLnBob25lTnVtYmVyID09PSAnb2JqZWN0Jykge1xuXHRcdFx0Y29uc3QgbnVtYmVyT2JqOiBDaGFuZ2VEYXRhID0gdGhpcy5waG9uZU51bWJlcjtcblx0XHRcdHRoaXMucGhvbmVOdW1iZXIgPSBudW1iZXJPYmoubnVtYmVyO1xuXHRcdFx0Y291bnRyeUNvZGUgPSBudW1iZXJPYmouY291bnRyeUNvZGU7XG5cdFx0fVxuXG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMucGhvbmVOdW1iZXI7XG5cdFx0Y291bnRyeUNvZGUgPSBjb3VudHJ5Q29kZSB8fCB0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yLnRvVXBwZXJDYXNlKCk7XG5cdFx0bGV0IG51bWJlcjogbHBuLlBob25lTnVtYmVyO1xuXHRcdHRyeSB7XG5cdFx0XHRudW1iZXIgPSB0aGlzLnBob25lVXRpbC5wYXJzZShcblx0XHRcdFx0dGhpcy5waG9uZU51bWJlcixcblx0XHRcdFx0Y291bnRyeUNvZGUsXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKGUpIHt9XG5cblx0XHQvLyBhdXRvIHNlbGVjdCBjb3VudHJ5IGJhc2VkIG9uIHRoZSBleHRlbnNpb24gKGFuZCBhcmVhQ29kZSBpZiBuZWVkZWQpIChlLmcgc2VsZWN0IENhbmFkYSBpZiBudW1iZXIgc3RhcnRzIHdpdGggKzEgNDE2KVxuXHRcdGlmICh0aGlzLmVuYWJsZUF1dG9Db3VudHJ5U2VsZWN0KSB7XG5cdFx0XHRjb3VudHJ5Q29kZSA9XG5cdFx0XHRcdG51bWJlciAmJiBudW1iZXIuZ2V0Q291bnRyeUNvZGUoKVxuXHRcdFx0XHRcdD8gdGhpcy5nZXRDb3VudHJ5SXNvQ29kZShudW1iZXIuZ2V0Q291bnRyeUNvZGUoKSwgbnVtYmVyKVxuXHRcdFx0XHRcdDogdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMjtcblx0XHRcdGlmIChjb3VudHJ5Q29kZSAmJiBjb3VudHJ5Q29kZSAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMikge1xuXHRcdFx0XHRjb25zdCBuZXdDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXMuZmluZChcblx0XHRcdFx0XHQoYykgPT4gYy5pc28yID09PSBjb3VudHJ5Q29kZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAobmV3Q291bnRyeSkge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3Q291bnRyeTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRjb3VudHJ5Q29kZSA9IGNvdW50cnlDb2RlID8gY291bnRyeUNvZGUgOiB0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yO1xuXG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXG5cdFx0aWYgKCF0aGlzLnZhbHVlKSB7XG5cdFx0XHQvLyBSZWFzb246IGF2b2lkIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81NDM1ODEzMy8xNjE3NTkwXG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW51bGwta2V5d29yZFxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGludGxObyA9IG51bWJlclxuXHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMKVxuXHRcdFx0XHQ6ICcnO1xuXG5cdFx0XHQvLyBwYXJzZSBwaG9uZU51bWJlciBpZiBzZXBhcmF0ZSBkaWFsIGNvZGUgaXMgbmVlZGVkXG5cdFx0XHRpZiAodGhpcy5zZXBhcmF0ZURpYWxDb2RlICYmIGludGxObykge1xuXHRcdFx0XHR0aGlzLnZhbHVlID0gdGhpcy5yZW1vdmVEaWFsQ29kZShpbnRsTm8pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh7XG5cdFx0XHRcdG51bWJlcjogdGhpcy52YWx1ZSxcblx0XHRcdFx0aW50ZXJuYXRpb25hbE51bWJlcjogaW50bE5vLFxuXHRcdFx0XHRuYXRpb25hbE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUwpXG5cdFx0XHRcdFx0OiAnJyxcblx0XHRcdFx0ZTE2NE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuRTE2NClcblx0XHRcdFx0XHQ6ICcnLFxuXHRcdFx0XHRjb3VudHJ5Q29kZTogY291bnRyeUNvZGUudG9VcHBlckNhc2UoKSxcblx0XHRcdFx0ZGlhbENvZGU6ICcrJyArIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlLFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIG9uQ291bnRyeVNlbGVjdChjb3VudHJ5OiBDb3VudHJ5LCBlbCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0U2VsZWN0ZWRDb3VudHJ5KGNvdW50cnkpO1xuXG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXG5cdFx0aWYgKHRoaXMucGhvbmVOdW1iZXIgJiYgdGhpcy5waG9uZU51bWJlci5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLnZhbHVlID0gdGhpcy5waG9uZU51bWJlcjtcblxuXHRcdFx0bGV0IG51bWJlcjogbHBuLlBob25lTnVtYmVyO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0bnVtYmVyID0gdGhpcy5waG9uZVV0aWwucGFyc2UoXG5cdFx0XHRcdFx0dGhpcy5waG9uZU51bWJlcixcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yLnRvVXBwZXJDYXNlKClcblx0XHRcdFx0KTtcblx0XHRcdH0gY2F0Y2ggKGUpIHt9XG5cblx0XHRcdGNvbnN0IGludGxObyA9IG51bWJlclxuXHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMKVxuXHRcdFx0XHQ6ICcnO1xuXG5cdFx0XHQvLyBwYXJzZSBwaG9uZU51bWJlciBpZiBzZXBhcmF0ZSBkaWFsIGNvZGUgaXMgbmVlZGVkXG5cdFx0XHRpZiAodGhpcy5zZXBhcmF0ZURpYWxDb2RlICYmIGludGxObykge1xuXHRcdFx0XHR0aGlzLnZhbHVlID0gdGhpcy5yZW1vdmVEaWFsQ29kZShpbnRsTm8pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh7XG5cdFx0XHRcdG51bWJlcjogdGhpcy52YWx1ZSxcblx0XHRcdFx0aW50ZXJuYXRpb25hbE51bWJlcjogaW50bE5vLFxuXHRcdFx0XHRuYXRpb25hbE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUwpXG5cdFx0XHRcdFx0OiAnJyxcblx0XHRcdFx0ZTE2NE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuRTE2NClcblx0XHRcdFx0XHQ6ICcnLFxuXHRcdFx0XHRjb3VudHJ5Q29kZTogdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMi50b1VwcGVyQ2FzZSgpLFxuXHRcdFx0XHRkaWFsQ29kZTogJysnICsgdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbENvZGUsXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gUmVhc29uOiBhdm9pZCBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNTQzNTgxMzMvMTYxNzU5MFxuXHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1udWxsLWtleXdvcmRcblx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xuXHRcdH1cblxuXHRcdGVsLmZvY3VzKCk7XG5cdH1cblxuXHRwdWJsaWMgb25JbnB1dEtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsb3dlZENoYXJzID0gL1swLTlcXCtcXC1cXCBdLztcblx0XHRjb25zdCBhbGxvd2VkQ3RybENoYXJzID0gL1theGN2XS87IC8vIEFsbG93cyBjb3B5LXBhc3Rpbmdcblx0XHRjb25zdCBhbGxvd2VkT3RoZXJLZXlzID0gW1xuXHRcdFx0J0Fycm93TGVmdCcsXG5cdFx0XHQnQXJyb3dVcCcsXG5cdFx0XHQnQXJyb3dSaWdodCcsXG5cdFx0XHQnQXJyb3dEb3duJyxcblx0XHRcdCdIb21lJyxcblx0XHRcdCdFbmQnLFxuXHRcdFx0J0luc2VydCcsXG5cdFx0XHQnRGVsZXRlJyxcblx0XHRcdCdCYWNrc3BhY2UnLFxuXHRcdF07XG5cblx0XHRpZiAoXG5cdFx0XHQhYWxsb3dlZENoYXJzLnRlc3QoZXZlbnQua2V5KSAmJlxuXHRcdFx0IShldmVudC5jdHJsS2V5ICYmIGFsbG93ZWRDdHJsQ2hhcnMudGVzdChldmVudC5rZXkpKSAmJlxuXHRcdFx0IWFsbG93ZWRPdGhlcktleXMuaW5jbHVkZXMoZXZlbnQua2V5KVxuXHRcdCkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgZmV0Y2hDb3VudHJ5RGF0YSgpOiB2b2lkIHtcblx0XHQvKiBDbGVhcmluZyB0aGUgbGlzdCB0byBhdm9pZCBkdXBsaWNhdGVzIChodHRwczovL2dpdGh1Yi5jb20vd2ViY2F0MTIzNDUvbmd4LWludGwtdGVsLWlucHV0L2lzc3Vlcy8yNDgpICovXG5cdFx0dGhpcy5hbGxDb3VudHJpZXMgPSBbXTtcblxuXHRcdHRoaXMuY291bnRyeUNvZGVEYXRhLmFsbENvdW50cmllcy5mb3JFYWNoKChjKSA9PiB7XG5cdFx0XHRjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0ge1xuXHRcdFx0XHRuYW1lOiBjWzBdLnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzbzI6IGNbMV0udG9TdHJpbmcoKSxcblx0XHRcdFx0ZGlhbENvZGU6IGNbMl0udG9TdHJpbmcoKSxcblx0XHRcdFx0cHJpb3JpdHk6ICtjWzNdIHx8IDAsXG5cdFx0XHRcdGFyZWFDb2RlczogKGNbNF0gYXMgc3RyaW5nW10pIHx8IHVuZGVmaW5lZCxcblx0XHRcdFx0ZmxhZ0NsYXNzOiBjWzFdLnRvU3RyaW5nKCkudG9Mb2NhbGVMb3dlckNhc2UoKSxcblx0XHRcdFx0cGxhY2VIb2xkZXI6ICcnLFxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHRoaXMuZW5hYmxlUGxhY2Vob2xkZXIpIHtcblx0XHRcdFx0Y291bnRyeS5wbGFjZUhvbGRlciA9IHRoaXMuZ2V0UGhvbmVOdW1iZXJQbGFjZUhvbGRlcihcblx0XHRcdFx0XHRjb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmFsbENvdW50cmllcy5wdXNoKGNvdW50cnkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoY291bnRyeUNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiB0aGlzLnBob25lVXRpbC5mb3JtYXQoXG5cdFx0XHRcdHRoaXMucGhvbmVVdGlsLmdldEV4YW1wbGVOdW1iZXIoY291bnRyeUNvZGUpLFxuXHRcdFx0XHRscG4uUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuXHRcdFx0KTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRyZXR1cm4gZTtcblx0XHR9XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaGVkID0gZm47XG5cdH1cblxuXHRzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblx0fVxuXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcblx0XHRpZiAob2JqID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuaW5pdCgpO1xuXHRcdH1cblx0XHR0aGlzLnBob25lTnVtYmVyID0gb2JqO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5vblBob25lTnVtYmVyQ2hhbmdlKCk7XG5cdFx0fSwgMSk7XG5cdH1cblxuXHRwcml2YXRlIGdldENvdW50cnlJc29Db2RlKFxuXHRcdGNvdW50cnlDb2RlOiBudW1iZXIsXG5cdFx0bnVtYmVyOiBscG4uUGhvbmVOdW1iZXJcblx0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHQvLyBXaWxsIHVzZSB0aGlzIHRvIG1hdGNoIGFyZWEgY29kZSBmcm9tIHRoZSBmaXJzdCBudW1iZXJzXG5cdFx0Y29uc3QgcmF3TnVtYmVyID0gbnVtYmVyWyd2YWx1ZXNfJ11bJzInXS50b1N0cmluZygpO1xuXHRcdC8vIExpc3Qgb2YgYWxsIGNvdW50cmllcyB3aXRoIGNvdW50cnlDb2RlIChjYW4gYmUgbW9yZSB0aGFuIG9uZS4gZS54LiBVUywgQ0EsIERPLCBQUiBhbGwgaGF2ZSArMSBjb3VudHJ5Q29kZSlcblx0XHRjb25zdCBjb3VudHJpZXMgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoXG5cdFx0XHQoYykgPT4gYy5kaWFsQ29kZSA9PT0gY291bnRyeUNvZGUudG9TdHJpbmcoKVxuXHRcdCk7XG5cdFx0Ly8gTWFpbiBjb3VudHJ5IGlzIHRoZSBjb3VudHJ5LCB3aGljaCBoYXMgbm8gYXJlYUNvZGVzIHNwZWNpZmllZCBpbiBjb3VudHJ5LWNvZGUudHMgZmlsZS5cblx0XHRjb25zdCBtYWluQ291bnRyeSA9IGNvdW50cmllcy5maW5kKChjKSA9PiBjLmFyZWFDb2RlcyA9PT0gdW5kZWZpbmVkKTtcblx0XHQvLyBTZWNvbmRhcnkgY291bnRyaWVzIGFyZSBhbGwgY291bnRyaWVzLCB3aGljaCBoYXZlIGFyZWFDb2RlcyBzcGVjaWZpZWQgaW4gY291bnRyeS1jb2RlLnRzIGZpbGUuXG5cdFx0Y29uc3Qgc2Vjb25kYXJ5Q291bnRyaWVzID0gY291bnRyaWVzLmZpbHRlcihcblx0XHRcdChjKSA9PiBjLmFyZWFDb2RlcyAhPT0gdW5kZWZpbmVkXG5cdFx0KTtcblx0XHRsZXQgbWF0Y2hlZENvdW50cnkgPSBtYWluQ291bnRyeSA/IG1haW5Db3VudHJ5LmlzbzIgOiB1bmRlZmluZWQ7XG5cblx0XHQvKlxuXHRcdFx0SXRlcmF0ZSBvdmVyIGVhY2ggc2Vjb25kYXJ5IGNvdW50cnkgYW5kIGNoZWNrIGlmIG5hdGlvbmFsTnVtYmVyIHN0YXJ0cyB3aXRoIGFueSBvZiBhcmVhQ29kZXMgYXZhaWxhYmxlLlxuXHRcdFx0SWYgbm8gbWF0Y2hlcyBmb3VuZCwgZmFsbGJhY2sgdG8gdGhlIG1haW4gY291bnRyeS5cblx0XHQqL1xuXHRcdHNlY29uZGFyeUNvdW50cmllcy5mb3JFYWNoKChjb3VudHJ5KSA9PiB7XG5cdFx0XHRjb3VudHJ5LmFyZWFDb2Rlcy5mb3JFYWNoKChhcmVhQ29kZSkgPT4ge1xuXHRcdFx0XHRpZiAocmF3TnVtYmVyLnN0YXJ0c1dpdGgoYXJlYUNvZGUpKSB7XG5cdFx0XHRcdFx0bWF0Y2hlZENvdW50cnkgPSBjb3VudHJ5LmlzbzI7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIG1hdGNoZWRDb3VudHJ5O1xuXHR9XG5cblx0c2VwYXJhdGVEaWFsQ29kZVBsYWNlSG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnJlbW92ZURpYWxDb2RlKHBsYWNlaG9sZGVyKTtcblx0fVxuXG5cdHByaXZhdGUgcmVtb3ZlRGlhbENvZGUocGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKHRoaXMuc2VwYXJhdGVEaWFsQ29kZSAmJiBwaG9uZU51bWJlcikge1xuXHRcdFx0cGhvbmVOdW1iZXIgPSBwaG9uZU51bWJlci5zdWJzdHIocGhvbmVOdW1iZXIuaW5kZXhPZignICcpICsgMSk7XG5cdFx0fVxuXHRcdHJldHVybiBwaG9uZU51bWJlcjtcblx0fVxuXG5cdC8vIGFkanVzdCBpbnB1dCBhbGlnbm1lbnRcblx0cHJpdmF0ZSBjaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpIHtcblx0XHRpZiAodGhpcy5zZXBhcmF0ZURpYWxDb2RlICYmIHRoaXMuc2VsZWN0ZWRDb3VudHJ5KSB7XG5cdFx0XHRjb25zdCBjbnRyeUNkID0gdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbENvZGU7XG5cdFx0XHR0aGlzLnNlcGFyYXRlRGlhbENvZGVDbGFzcyA9XG5cdFx0XHRcdCdzZXBhcmF0ZS1kaWFsLWNvZGUgaXRpLXNkYy0nICsgKGNudHJ5Q2QubGVuZ3RoICsgMSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2VwYXJhdGVEaWFsQ29kZUNsYXNzID0gJyc7XG5cdFx0fVxuXHR9XG59XG4iXX0=

@@ -186,9 +186,16 @@ import { __decorate, __metadata } from "tslib";

NgxIntlTelInputComponent.prototype.onPhoneNumberChange = function () {
var countryCode;
// Handle the case where the user sets the value programatically based on a persisted ChangeData obj.
if (this.phoneNumber && typeof this.phoneNumber === 'object') {
var numberObj = this.phoneNumber;
this.phoneNumber = numberObj.number;
countryCode = numberObj.countryCode;
}
this.value = this.phoneNumber;
countryCode = countryCode || this.selectedCountry.iso2.toUpperCase();
var number;
try {
number = this.phoneUtil.parse(this.phoneNumber, this.selectedCountry.iso2.toUpperCase());
number = this.phoneUtil.parse(this.phoneNumber, countryCode);
}
catch (e) { }
var countryCode = this.selectedCountry.iso2;
// auto select country based on the extension (and areaCode if needed) (e.g select Canada if number starts with +1 416)

@@ -486,2 +493,2 @@ if (this.enableAutoCountrySelect) {

export { ɵ0 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1pbnRsLXRlbC1pbnB1dC8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtaW50bC10ZWwtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE9BQU8sRUFDTixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQ2xFLFNBQVMsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO1NBaUJ6RCxvQkFBb0I7QUFLakM7SUE2Q0Msa0NBQW9CLGVBQTRCO1FBQTVCLG9CQUFlLEdBQWYsZUFBZSxDQUFhO1FBNUN2QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsdUJBQWtCLEdBQWtCLEVBQUUsQ0FBQztRQUN2QyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsYUFBUSxHQUFHLGNBQWMsQ0FBQztRQUMxQixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFDbEMsNEJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQix1QkFBa0IsR0FBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSw2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cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbHBuIGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5cbmltcG9ydCB7XG5cdENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENvdW50cnlDb2RlIH0gZnJvbSAnLi9kYXRhL2NvdW50cnktY29kZSc7XG5pbXBvcnQgeyBDb3VudHJ5SVNPIH0gZnJvbSAnLi9lbnVtcy9jb3VudHJ5LWlzby5lbnVtJztcbmltcG9ydCB7IFNlYXJjaENvdW50cnlGaWVsZCB9IGZyb20gJy4vZW51bXMvc2VhcmNoLWNvdW50cnktZmllbGQuZW51bSc7XG5pbXBvcnQgeyBUb29sdGlwTGFiZWwgfSBmcm9tICcuL2VudW1zL3Rvb2x0aXAtbGFiZWwuZW51bSc7XG5pbXBvcnQgeyBDaGFuZ2VEYXRhIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NoYW5nZS1kYXRhJztcbmltcG9ydCB7IENvdW50cnkgfSBmcm9tICcuL21vZGVsL2NvdW50cnkubW9kZWwnO1xuaW1wb3J0IHsgcGhvbmVOdW1iZXJWYWxpZGF0b3IgfSBmcm9tICcuL25neC1pbnRsLXRlbC1pbnB1dC52YWxpZGF0b3InO1xuXG5AQ29tcG9uZW50KHtcblx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjb21wb25lbnQtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICduZ3gtaW50bC10ZWwtaW5wdXQnLFxuXHR0ZW1wbGF0ZVVybDogJy4vbmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vbmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0Q291bnRyeUNvZGUsXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZm9yd2FyZC1yZWZcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5neEludGxUZWxJbnB1dENvbXBvbmVudCksXG5cdFx0XHRtdWx0aTogdHJ1ZSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG5cdFx0XHR1c2VWYWx1ZTogcGhvbmVOdW1iZXJWYWxpZGF0b3IsXG5cdFx0XHRtdWx0aTogdHJ1ZSxcblx0XHR9LFxuXHRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hJbnRsVGVsSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cdEBJbnB1dCgpIHZhbHVlID0gJyc7XG5cdEBJbnB1dCgpIHByZWZlcnJlZENvdW50cmllczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRASW5wdXQoKSBlbmFibGVQbGFjZWhvbGRlciA9IHRydWU7XG5cdEBJbnB1dCgpIGNzc0NsYXNzID0gJ2Zvcm0tY29udHJvbCc7XG5cdEBJbnB1dCgpIG9ubHlDb3VudHJpZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0QElucHV0KCkgZW5hYmxlQXV0b0NvdW50cnlTZWxlY3QgPSB0cnVlO1xuXHRASW5wdXQoKSBzZWFyY2hDb3VudHJ5RmxhZyA9IGZhbHNlO1xuXHRASW5wdXQoKSBzZWFyY2hDb3VudHJ5RmllbGQ6IFNlYXJjaENvdW50cnlGaWVsZFtdID0gW1NlYXJjaENvdW50cnlGaWVsZC5BbGxdO1xuXHRASW5wdXQoKSBzZWFyY2hDb3VudHJ5UGxhY2Vob2xkZXIgPSAnU2VhcmNoIENvdW50cnknO1xuXHRASW5wdXQoKSBtYXhMZW5ndGggPSAnJztcblx0QElucHV0KCkgdG9vbHRpcEZpZWxkOiBUb29sdGlwTGFiZWw7XG5cdEBJbnB1dCgpIHNlbGVjdEZpcnN0Q291bnRyeSA9IHRydWU7XG5cdEBJbnB1dCgpIHNlbGVjdGVkQ291bnRyeUlTTzogQ291bnRyeUlTTztcblx0QElucHV0KCkgcGhvbmVWYWxpZGF0aW9uID0gdHJ1ZTtcblx0QElucHV0KCkgaW5wdXRJZCA9ICdwaG9uZSc7XG5cdEBJbnB1dCgpIHNlcGFyYXRlRGlhbENvZGUgPSBmYWxzZTtcblx0c2VwYXJhdGVEaWFsQ29kZUNsYXNzOiBzdHJpbmc7XG5cblx0QE91dHB1dCgpIHJlYWRvbmx5IGNvdW50cnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnk+KCk7XG5cblx0c2VsZWN0ZWRDb3VudHJ5OiBDb3VudHJ5ID0ge1xuXHRcdGFyZWFDb2RlczogdW5kZWZpbmVkLFxuXHRcdGRpYWxDb2RlOiAnJyxcblx0XHRmbGFnQ2xhc3M6ICcnLFxuXHRcdGlzbzI6ICcnLFxuXHRcdG5hbWU6ICcnLFxuXHRcdHBsYWNlSG9sZGVyOiAnJyxcblx0XHRwcmlvcml0eTogMCxcblx0fTtcblxuXHRwaG9uZU51bWJlciA9ICcnO1xuXHRhbGxDb3VudHJpZXM6IEFycmF5PENvdW50cnk+ID0gW107XG5cdHByZWZlcnJlZENvdW50cmllc0luRHJvcERvd246IEFycmF5PENvdW50cnk+ID0gW107XG5cdC8vIEhhcyB0byBiZSAnYW55JyB0byBwcmV2ZW50IGEgbmVlZCB0byBpbnN0YWxsIEB0eXBlcy9nb29nbGUtbGlicGhvbmVudW1iZXIgYnkgdGhlIHBhY2thZ2UgdXNlci4uLlxuXHRwaG9uZVV0aWw6IGFueSA9IGxwbi5QaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblx0ZGlzYWJsZWQgPSBmYWxzZTtcblx0ZXJyb3JzOiBBcnJheTxhbnk+ID0gWydQaG9uZSBudW1iZXIgaXMgcmVxdWlyZWQuJ107XG5cdGNvdW50cnlTZWFyY2hUZXh0ID0gJyc7XG5cblx0QFZpZXdDaGlsZCgnY291bnRyeUxpc3QnKSBjb3VudHJ5TGlzdDogRWxlbWVudFJlZjtcblxuXHRvblRvdWNoZWQgPSAoKSA9PiB7fTtcblx0cHJvcGFnYXRlQ2hhbmdlID0gKF86IENoYW5nZURhdGEpID0+IHt9O1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgY291bnRyeUNvZGVEYXRhOiBDb3VudHJ5Q29kZSkge31cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmluaXQoKTtcblx0fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRjb25zdCBzZWxlY3RlZElTTyA9IGNoYW5nZXNbJ3NlbGVjdGVkQ291bnRyeUlTTyddO1xuXHRcdGlmIChcblx0XHRcdHRoaXMuYWxsQ291bnRyaWVzICYmXG5cdFx0XHRzZWxlY3RlZElTTyAmJlxuXHRcdFx0c2VsZWN0ZWRJU08uY3VycmVudFZhbHVlICE9PSBzZWxlY3RlZElTTy5wcmV2aW91c1ZhbHVlXG5cdFx0KSB7XG5cdFx0XHR0aGlzLmdldFNlbGVjdGVkQ291bnRyeSgpO1xuXHRcdH1cblx0XHRpZiAoY2hhbmdlcy5wcmVmZXJyZWRDb3VudHJpZXMpIHtcblx0XHRcdHRoaXMuZ2V0UHJlZmVycmVkQ291bnRyaWVzKCk7XG5cdFx0fVxuXHRcdHRoaXMuY2hlY2tTZXBhcmF0ZURpYWxDb2RlU3R5bGUoKTtcblx0fVxuXG5cdC8qXG5cdFx0VGhpcyBpcyBhIHdyYXBwZXIgbWV0aG9kIHRvIGF2b2lkIGNhbGxpbmcgdGhpcy5uZ09uSW5pdCgpIGluIHdyaXRlVmFsdWUoKS5cblx0XHRSZWY6IGh0dHA6Ly9jb2RlbHl6ZXIuY29tL3J1bGVzL25vLWxpZmUtY3ljbGUtY2FsbC9cblx0Ki9cblx0aW5pdCgpIHtcblx0XHR0aGlzLmZldGNoQ291bnRyeURhdGEoKTtcblx0XHRpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLmdldFByZWZlcnJlZENvdW50cmllcygpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vbmx5Q291bnRyaWVzLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5hbGxDb3VudHJpZXMgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoKGMpID0+XG5cdFx0XHRcdHRoaXMub25seUNvdW50cmllcy5pbmNsdWRlcyhjLmlzbzIpXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5zZWxlY3RGaXJzdENvdW50cnkpIHtcblx0XHRcdGlmICh0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24ubGVuZ3RoKSB7XG5cdFx0XHRcdHRoaXMuc2V0U2VsZWN0ZWRDb3VudHJ5KHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93blswXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkQ291bnRyeSh0aGlzLmFsbENvdW50cmllc1swXSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5KCk7XG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXHR9XG5cblx0Z2V0UHJlZmVycmVkQ291bnRyaWVzKCkge1xuXHRcdGlmICh0aGlzLnByZWZlcnJlZENvdW50cmllcy5sZW5ndGgpIHtcblx0XHRcdHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93biA9IFtdO1xuXHRcdFx0dGhpcy5wcmVmZXJyZWRDb3VudHJpZXMuZm9yRWFjaCgoaXNvMikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcmVmZXJyZWRDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGMuaXNvMiA9PT0gaXNvMjtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0dGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLnB1c2gocHJlZmVycmVkQ291bnRyeVswXSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRnZXRTZWxlY3RlZENvdW50cnkoKSB7XG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5SVNPKSB7XG5cdFx0XHR0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbmQoKGMpID0+IHtcblx0XHRcdFx0cmV0dXJuIGMuaXNvMi50b0xvd2VyQ2FzZSgpID09PSB0aGlzLnNlbGVjdGVkQ291bnRyeUlTTy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0fSk7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZENvdW50cnkpIHtcblx0XHRcdFx0aWYgKHRoaXMucGhvbmVOdW1iZXIpIHtcblx0XHRcdFx0XHR0aGlzLm9uUGhvbmVOdW1iZXJDaGFuZ2UoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBSZWFzb246IGF2b2lkIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81NDM1ODEzMy8xNjE3NTkwXG5cdFx0XHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1udWxsLWtleXdvcmRcblx0XHRcdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHNldFNlbGVjdGVkQ291bnRyeShjb3VudHJ5OiBDb3VudHJ5KSB7XG5cdFx0dGhpcy5zZWxlY3RlZENvdW50cnkgPSBjb3VudHJ5O1xuXHRcdHRoaXMuY291bnRyeUNoYW5nZS5lbWl0KGNvdW50cnkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNlYXJjaCBjb3VudHJ5IGJhc2VkIG9uIGNvdW50cnkgbmFtZSwgaXNvMiwgZGlhbENvZGUgb3IgYWxsIG9mIHRoZW0uXG5cdCAqL1xuXHRzZWFyY2hDb3VudHJ5KCkge1xuXHRcdGlmICghdGhpcy5jb3VudHJ5U2VhcmNoVGV4dCkge1xuXHRcdFx0dGhpcy5jb3VudHJ5TGlzdC5uYXRpdmVFbGVtZW50XG5cdFx0XHRcdC5xdWVyeVNlbGVjdG9yKCcuY291bnRyeS1saXN0IGxpJylcblx0XHRcdFx0LnNjcm9sbEludG9WaWV3KHtcblx0XHRcdFx0XHRiZWhhdmlvcjogJ3Ntb290aCcsXG5cdFx0XHRcdFx0YmxvY2s6ICduZWFyZXN0Jyxcblx0XHRcdFx0XHRpbmxpbmU6ICduZWFyZXN0Jyxcblx0XHRcdFx0fSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGNvdW50cnlTZWFyY2hUZXh0TG93ZXIgPSB0aGlzLmNvdW50cnlTZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XG5cdFx0Y29uc3QgY291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbHRlcigoYykgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2VhcmNoQ291bnRyeUZpZWxkLmluZGV4T2YoU2VhcmNoQ291bnRyeUZpZWxkLkFsbCkgPiAtMSkge1xuXHRcdFx0XHQvLyBTZWFyY2ggaW4gYWxsIGZpZWxkc1xuXHRcdFx0XHRpZiAoYy5pc28yLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChjb3VudHJ5U2VhcmNoVGV4dExvd2VyKSkge1xuXHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKGNvdW50cnlTZWFyY2hUZXh0TG93ZXIpKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGM7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGMuZGlhbENvZGUuc3RhcnRzV2l0aCh0aGlzLmNvdW50cnlTZWFyY2hUZXh0KSkge1xuXHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBPciBzZWFyY2ggYnkgc3BlY2lmaWMgU2VhcmNoQ291bnRyeUZpZWxkKHMpXG5cdFx0XHRcdGlmICh0aGlzLnNlYXJjaENvdW50cnlGaWVsZC5pbmRleE9mKFNlYXJjaENvdW50cnlGaWVsZC5Jc28yKSA+IC0xKSB7XG5cdFx0XHRcdFx0aWYgKGMuaXNvMi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoY291bnRyeVNlYXJjaFRleHRMb3dlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5zZWFyY2hDb3VudHJ5RmllbGQuaW5kZXhPZihTZWFyY2hDb3VudHJ5RmllbGQuTmFtZSkgPiAtMSkge1xuXHRcdFx0XHRcdGlmIChjLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKGNvdW50cnlTZWFyY2hUZXh0TG93ZXIpKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuc2VhcmNoQ291bnRyeUZpZWxkLmluZGV4T2YoU2VhcmNoQ291bnRyeUZpZWxkLkRpYWxDb2RlKSA+IC0xKSB7XG5cdFx0XHRcdFx0aWYgKGMuZGlhbENvZGUuc3RhcnRzV2l0aCh0aGlzLmNvdW50cnlTZWFyY2hUZXh0KSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAoY291bnRyeS5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBlbCA9IHRoaXMuY291bnRyeUxpc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuXHRcdFx0XHQnIycgKyBjb3VudHJ5WzBdLmlzbzJcblx0XHRcdCk7XG5cdFx0XHRpZiAoZWwpIHtcblx0XHRcdFx0ZWwuc2Nyb2xsSW50b1ZpZXcoe1xuXHRcdFx0XHRcdGJlaGF2aW9yOiAnc21vb3RoJyxcblx0XHRcdFx0XHRibG9jazogJ25lYXJlc3QnLFxuXHRcdFx0XHRcdGlubGluZTogJ25lYXJlc3QnLFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0aGlzLmNoZWNrU2VwYXJhdGVEaWFsQ29kZVN0eWxlKCk7XG5cdH1cblxuXHRwdWJsaWMgb25QaG9uZU51bWJlckNoYW5nZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlID0gdGhpcy5waG9uZU51bWJlcjtcblxuXHRcdGxldCBudW1iZXI6IGxwbi5QaG9uZU51bWJlcjtcblx0XHR0cnkge1xuXHRcdFx0bnVtYmVyID0gdGhpcy5waG9uZVV0aWwucGFyc2UoXG5cdFx0XHRcdHRoaXMucGhvbmVOdW1iZXIsXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKVxuXHRcdFx0KTtcblx0XHR9IGNhdGNoIChlKSB7fVxuXG5cdFx0bGV0IGNvdW50cnlDb2RlID0gdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMjtcblx0XHQvLyBhdXRvIHNlbGVjdCBjb3VudHJ5IGJhc2VkIG9uIHRoZSBleHRlbnNpb24gKGFuZCBhcmVhQ29kZSBpZiBuZWVkZWQpIChlLmcgc2VsZWN0IENhbmFkYSBpZiBudW1iZXIgc3RhcnRzIHdpdGggKzEgNDE2KVxuXHRcdGlmICh0aGlzLmVuYWJsZUF1dG9Db3VudHJ5U2VsZWN0KSB7XG5cdFx0XHRjb3VudHJ5Q29kZSA9XG5cdFx0XHRcdG51bWJlciAmJiBudW1iZXIuZ2V0Q291bnRyeUNvZGUoKVxuXHRcdFx0XHRcdD8gdGhpcy5nZXRDb3VudHJ5SXNvQ29kZShudW1iZXIuZ2V0Q291bnRyeUNvZGUoKSwgbnVtYmVyKVxuXHRcdFx0XHRcdDogdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMjtcblx0XHRcdGlmIChjb3VudHJ5Q29kZSAmJiBjb3VudHJ5Q29kZSAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMikge1xuXHRcdFx0XHRjb25zdCBuZXdDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXMuZmluZChcblx0XHRcdFx0XHQoYykgPT4gYy5pc28yID09PSBjb3VudHJ5Q29kZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAobmV3Q291bnRyeSkge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3Q291bnRyeTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRjb3VudHJ5Q29kZSA9IGNvdW50cnlDb2RlID8gY291bnRyeUNvZGUgOiB0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yO1xuXG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXG5cdFx0aWYgKCF0aGlzLnZhbHVlKSB7XG5cdFx0XHQvLyBSZWFzb246IGF2b2lkIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81NDM1ODEzMy8xNjE3NTkwXG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW51bGwta2V5d29yZFxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGludGxObyA9IG51bWJlclxuXHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMKVxuXHRcdFx0XHQ6ICcnO1xuXG5cdFx0XHQvLyBwYXJzZSBwaG9uZU51bWJlciBpZiBzZXBhcmF0ZSBkaWFsIGNvZGUgaXMgbmVlZGVkXG5cdFx0XHRpZiAodGhpcy5zZXBhcmF0ZURpYWxDb2RlICYmIGludGxObykge1xuXHRcdFx0XHR0aGlzLnZhbHVlID0gdGhpcy5yZW1vdmVEaWFsQ29kZShpbnRsTm8pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh7XG5cdFx0XHRcdG51bWJlcjogdGhpcy52YWx1ZSxcblx0XHRcdFx0aW50ZXJuYXRpb25hbE51bWJlcjogaW50bE5vLFxuXHRcdFx0XHRuYXRpb25hbE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUwpXG5cdFx0XHRcdFx0OiAnJyxcblx0XHRcdFx0ZTE2NE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuRTE2NClcblx0XHRcdFx0XHQ6ICcnLFxuXHRcdFx0XHRjb3VudHJ5Q29kZTogY291bnRyeUNvZGUudG9VcHBlckNhc2UoKSxcblx0XHRcdFx0ZGlhbENvZGU6ICcrJyArIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlLFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIG9uQ291bnRyeVNlbGVjdChjb3VudHJ5OiBDb3VudHJ5LCBlbCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0U2VsZWN0ZWRDb3VudHJ5KGNvdW50cnkpO1xuXG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXG5cdFx0aWYgKHRoaXMucGhvbmVOdW1iZXIgJiYgdGhpcy5waG9uZU51bWJlci5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLnZhbHVlID0gdGhpcy5waG9uZU51bWJlcjtcblxuXHRcdFx0bGV0IG51bWJlcjogbHBuLlBob25lTnVtYmVyO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0bnVtYmVyID0gdGhpcy5waG9uZVV0aWwucGFyc2UoXG5cdFx0XHRcdFx0dGhpcy5waG9uZU51bWJlcixcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yLnRvVXBwZXJDYXNlKClcblx0XHRcdFx0KTtcblx0XHRcdH0gY2F0Y2ggKGUpIHt9XG5cblx0XHRcdGNvbnN0IGludGxObyA9IG51bWJlclxuXHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMKVxuXHRcdFx0XHQ6ICcnO1xuXG5cdFx0XHQvLyBwYXJzZSBwaG9uZU51bWJlciBpZiBzZXBhcmF0ZSBkaWFsIGNvZGUgaXMgbmVlZGVkXG5cdFx0XHRpZiAodGhpcy5zZXBhcmF0ZURpYWxDb2RlICYmIGludGxObykge1xuXHRcdFx0XHR0aGlzLnZhbHVlID0gdGhpcy5yZW1vdmVEaWFsQ29kZShpbnRsTm8pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh7XG5cdFx0XHRcdG51bWJlcjogdGhpcy52YWx1ZSxcblx0XHRcdFx0aW50ZXJuYXRpb25hbE51bWJlcjogaW50bE5vLFxuXHRcdFx0XHRuYXRpb25hbE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUwpXG5cdFx0XHRcdFx0OiAnJyxcblx0XHRcdFx0ZTE2NE51bWJlcjogbnVtYmVyXG5cdFx0XHRcdFx0PyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuRTE2NClcblx0XHRcdFx0XHQ6ICcnLFxuXHRcdFx0XHRjb3VudHJ5Q29kZTogdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMi50b1VwcGVyQ2FzZSgpLFxuXHRcdFx0XHRkaWFsQ29kZTogJysnICsgdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbENvZGUsXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gUmVhc29uOiBhdm9pZCBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNTQzNTgxMzMvMTYxNzU5MFxuXHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1udWxsLWtleXdvcmRcblx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xuXHRcdH1cblxuXHRcdGVsLmZvY3VzKCk7XG5cdH1cblxuXHRwdWJsaWMgb25JbnB1dEtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsb3dlZENoYXJzID0gL1swLTlcXCtcXC1cXCBdLztcblx0XHRjb25zdCBhbGxvd2VkQ3RybENoYXJzID0gL1theGN2XS87IC8vIEFsbG93cyBjb3B5LXBhc3Rpbmdcblx0XHRjb25zdCBhbGxvd2VkT3RoZXJLZXlzID0gW1xuXHRcdFx0J0Fycm93TGVmdCcsXG5cdFx0XHQnQXJyb3dVcCcsXG5cdFx0XHQnQXJyb3dSaWdodCcsXG5cdFx0XHQnQXJyb3dEb3duJyxcblx0XHRcdCdIb21lJyxcblx0XHRcdCdFbmQnLFxuXHRcdFx0J0luc2VydCcsXG5cdFx0XHQnRGVsZXRlJyxcblx0XHRcdCdCYWNrc3BhY2UnLFxuXHRcdF07XG5cblx0XHRpZiAoXG5cdFx0XHQhYWxsb3dlZENoYXJzLnRlc3QoZXZlbnQua2V5KSAmJlxuXHRcdFx0IShldmVudC5jdHJsS2V5ICYmIGFsbG93ZWRDdHJsQ2hhcnMudGVzdChldmVudC5rZXkpKSAmJlxuXHRcdFx0IWFsbG93ZWRPdGhlcktleXMuaW5jbHVkZXMoZXZlbnQua2V5KVxuXHRcdCkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgZmV0Y2hDb3VudHJ5RGF0YSgpOiB2b2lkIHtcblx0XHQvKiBDbGVhcmluZyB0aGUgbGlzdCB0byBhdm9pZCBkdXBsaWNhdGVzIChodHRwczovL2dpdGh1Yi5jb20vd2ViY2F0MTIzNDUvbmd4LWludGwtdGVsLWlucHV0L2lzc3Vlcy8yNDgpICovXG5cdFx0dGhpcy5hbGxDb3VudHJpZXMgPSBbXTtcblxuXHRcdHRoaXMuY291bnRyeUNvZGVEYXRhLmFsbENvdW50cmllcy5mb3JFYWNoKChjKSA9PiB7XG5cdFx0XHRjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0ge1xuXHRcdFx0XHRuYW1lOiBjWzBdLnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzbzI6IGNbMV0udG9TdHJpbmcoKSxcblx0XHRcdFx0ZGlhbENvZGU6IGNbMl0udG9TdHJpbmcoKSxcblx0XHRcdFx0cHJpb3JpdHk6ICtjWzNdIHx8IDAsXG5cdFx0XHRcdGFyZWFDb2RlczogKGNbNF0gYXMgc3RyaW5nW10pIHx8IHVuZGVmaW5lZCxcblx0XHRcdFx0ZmxhZ0NsYXNzOiBjWzFdLnRvU3RyaW5nKCkudG9Mb2NhbGVMb3dlckNhc2UoKSxcblx0XHRcdFx0cGxhY2VIb2xkZXI6ICcnLFxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHRoaXMuZW5hYmxlUGxhY2Vob2xkZXIpIHtcblx0XHRcdFx0Y291bnRyeS5wbGFjZUhvbGRlciA9IHRoaXMuZ2V0UGhvbmVOdW1iZXJQbGFjZUhvbGRlcihcblx0XHRcdFx0XHRjb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmFsbENvdW50cmllcy5wdXNoKGNvdW50cnkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoY291bnRyeUNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiB0aGlzLnBob25lVXRpbC5mb3JtYXQoXG5cdFx0XHRcdHRoaXMucGhvbmVVdGlsLmdldEV4YW1wbGVOdW1iZXIoY291bnRyeUNvZGUpLFxuXHRcdFx0XHRscG4uUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuXHRcdFx0KTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRyZXR1cm4gZTtcblx0XHR9XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaGVkID0gZm47XG5cdH1cblxuXHRzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblx0fVxuXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcblx0XHRpZiAob2JqID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuaW5pdCgpO1xuXHRcdH1cblx0XHR0aGlzLnBob25lTnVtYmVyID0gb2JqO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5vblBob25lTnVtYmVyQ2hhbmdlKCk7XG5cdFx0fSwgMSk7XG5cdH1cblxuXHRwcml2YXRlIGdldENvdW50cnlJc29Db2RlKFxuXHRcdGNvdW50cnlDb2RlOiBudW1iZXIsXG5cdFx0bnVtYmVyOiBscG4uUGhvbmVOdW1iZXJcblx0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHQvLyBXaWxsIHVzZSB0aGlzIHRvIG1hdGNoIGFyZWEgY29kZSBmcm9tIHRoZSBmaXJzdCBudW1iZXJzXG5cdFx0Y29uc3QgcmF3TnVtYmVyID0gbnVtYmVyWyd2YWx1ZXNfJ11bJzInXS50b1N0cmluZygpO1xuXHRcdC8vIExpc3Qgb2YgYWxsIGNvdW50cmllcyB3aXRoIGNvdW50cnlDb2RlIChjYW4gYmUgbW9yZSB0aGFuIG9uZS4gZS54LiBVUywgQ0EsIERPLCBQUiBhbGwgaGF2ZSArMSBjb3VudHJ5Q29kZSlcblx0XHRjb25zdCBjb3VudHJpZXMgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoXG5cdFx0XHQoYykgPT4gYy5kaWFsQ29kZSA9PT0gY291bnRyeUNvZGUudG9TdHJpbmcoKVxuXHRcdCk7XG5cdFx0Ly8gTWFpbiBjb3VudHJ5IGlzIHRoZSBjb3VudHJ5LCB3aGljaCBoYXMgbm8gYXJlYUNvZGVzIHNwZWNpZmllZCBpbiBjb3VudHJ5LWNvZGUudHMgZmlsZS5cblx0XHRjb25zdCBtYWluQ291bnRyeSA9IGNvdW50cmllcy5maW5kKChjKSA9PiBjLmFyZWFDb2RlcyA9PT0gdW5kZWZpbmVkKTtcblx0XHQvLyBTZWNvbmRhcnkgY291bnRyaWVzIGFyZSBhbGwgY291bnRyaWVzLCB3aGljaCBoYXZlIGFyZWFDb2RlcyBzcGVjaWZpZWQgaW4gY291bnRyeS1jb2RlLnRzIGZpbGUuXG5cdFx0Y29uc3Qgc2Vjb25kYXJ5Q291bnRyaWVzID0gY291bnRyaWVzLmZpbHRlcihcblx0XHRcdChjKSA9PiBjLmFyZWFDb2RlcyAhPT0gdW5kZWZpbmVkXG5cdFx0KTtcblx0XHRsZXQgbWF0Y2hlZENvdW50cnkgPSBtYWluQ291bnRyeSA/IG1haW5Db3VudHJ5LmlzbzIgOiB1bmRlZmluZWQ7XG5cblx0XHQvKlxuXHRcdFx0SXRlcmF0ZSBvdmVyIGVhY2ggc2Vjb25kYXJ5IGNvdW50cnkgYW5kIGNoZWNrIGlmIG5hdGlvbmFsTnVtYmVyIHN0YXJ0cyB3aXRoIGFueSBvZiBhcmVhQ29kZXMgYXZhaWxhYmxlLlxuXHRcdFx0SWYgbm8gbWF0Y2hlcyBmb3VuZCwgZmFsbGJhY2sgdG8gdGhlIG1haW4gY291bnRyeS5cblx0XHQqL1xuXHRcdHNlY29uZGFyeUNvdW50cmllcy5mb3JFYWNoKChjb3VudHJ5KSA9PiB7XG5cdFx0XHRjb3VudHJ5LmFyZWFDb2Rlcy5mb3JFYWNoKChhcmVhQ29kZSkgPT4ge1xuXHRcdFx0XHRpZiAocmF3TnVtYmVyLnN0YXJ0c1dpdGgoYXJlYUNvZGUpKSB7XG5cdFx0XHRcdFx0bWF0Y2hlZENvdW50cnkgPSBjb3VudHJ5LmlzbzI7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIG1hdGNoZWRDb3VudHJ5O1xuXHR9XG5cblx0c2VwYXJhdGVEaWFsQ29kZVBsYWNlSG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnJlbW92ZURpYWxDb2RlKHBsYWNlaG9sZGVyKTtcblx0fVxuXG5cdHByaXZhdGUgcmVtb3ZlRGlhbENvZGUocGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKHRoaXMuc2VwYXJhdGVEaWFsQ29kZSAmJiBwaG9uZU51bWJlcikge1xuXHRcdFx0cGhvbmVOdW1iZXIgPSBwaG9uZU51bWJlci5zdWJzdHIocGhvbmVOdW1iZXIuaW5kZXhPZignICcpICsgMSk7XG5cdFx0fVxuXHRcdHJldHVybiBwaG9uZU51bWJlcjtcblx0fVxuXG5cdC8vIGFkanVzdCBpbnB1dCBhbGlnbm1lbnRcblx0cHJpdmF0ZSBjaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpIHtcblx0XHRpZiAodGhpcy5zZXBhcmF0ZURpYWxDb2RlICYmIHRoaXMuc2VsZWN0ZWRDb3VudHJ5KSB7XG5cdFx0XHRjb25zdCBjbnRyeUNkID0gdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbENvZGU7XG5cdFx0XHR0aGlzLnNlcGFyYXRlRGlhbENvZGVDbGFzcyA9XG5cdFx0XHRcdCdzZXBhcmF0ZS1kaWFsLWNvZGUgaXRpLXNkYy0nICsgKGNudHJ5Q2QubGVuZ3RoICsgMSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2VwYXJhdGVEaWFsQ29kZUNsYXNzID0gJyc7XG5cdFx0fVxuXHR9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1pbnRsLXRlbC1pbnB1dC8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtaW50bC10ZWwtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE9BQU8sRUFDTixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQ2xFLFNBQVMsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO1NBaUJ6RCxvQkFBb0I7QUFLakM7SUE2Q0Msa0NBQW9CLGVBQTRCO1FBQTVCLG9CQUFlLEdBQWYsZUFBZSxDQUFhO1FBNUN2QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsdUJBQWtCLEdBQWtCLEVBQUUsQ0FBQztRQUN2QyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsYUFBUSxHQUFHLGNBQWMsQ0FBQztRQUMxQixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFDbEMsNEJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQix1QkFBa0IsR0FBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSw2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QUF4QixDQUF3QixDQUFDO29CQUN2RCxLQUFLLEVBQUUsSUFBSTtpQkFDWDtnQkFDRDtvQkFDQyxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsUUFBUSxJQUFzQjtvQkFDOUIsS0FBSyxFQUFFLElBQUk7aUJBQ1g7YUFDRDs7U0FDRCxDQUFDO3lDQThDb0MsV0FBVztPQTdDcEMsd0JBQXdCLENBdWJwQztJQUFELCtCQUFDO0NBQUEsQUF2YkQsSUF1YkM7U0F2Ylksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbHBuIGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5cbmltcG9ydCB7XG5cdENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENvdW50cnlDb2RlIH0gZnJvbSAnLi9kYXRhL2NvdW50cnktY29kZSc7XG5pbXBvcnQgeyBDb3VudHJ5SVNPIH0gZnJvbSAnLi9lbnVtcy9jb3VudHJ5LWlzby5lbnVtJztcbmltcG9ydCB7IFNlYXJjaENvdW50cnlGaWVsZCB9IGZyb20gJy4vZW51bXMvc2VhcmNoLWNvdW50cnktZmllbGQuZW51bSc7XG5pbXBvcnQgeyBUb29sdGlwTGFiZWwgfSBmcm9tICcuL2VudW1zL3Rvb2x0aXAtbGFiZWwuZW51bSc7XG5pbXBvcnQgeyBDaGFuZ2VEYXRhIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NoYW5nZS1kYXRhJztcbmltcG9ydCB7IENvdW50cnkgfSBmcm9tICcuL21vZGVsL2NvdW50cnkubW9kZWwnO1xuaW1wb3J0IHsgcGhvbmVOdW1iZXJWYWxpZGF0b3IgfSBmcm9tICcuL25neC1pbnRsLXRlbC1pbnB1dC52YWxpZGF0b3InO1xuXG5AQ29tcG9uZW50KHtcblx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjb21wb25lbnQtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICduZ3gtaW50bC10ZWwtaW5wdXQnLFxuXHR0ZW1wbGF0ZVVybDogJy4vbmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vbmd4LWludGwtdGVsLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0Q291bnRyeUNvZGUsXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZm9yd2FyZC1yZWZcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5neEludGxUZWxJbnB1dENvbXBvbmVudCksXG5cdFx0XHRtdWx0aTogdHJ1ZSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG5cdFx0XHR1c2VWYWx1ZTogcGhvbmVOdW1iZXJWYWxpZGF0b3IsXG5cdFx0XHRtdWx0aTogdHJ1ZSxcblx0XHR9LFxuXHRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hJbnRsVGVsSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cdEBJbnB1dCgpIHZhbHVlID0gJyc7XG5cdEBJbnB1dCgpIHByZWZlcnJlZENvdW50cmllczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRASW5wdXQoKSBlbmFibGVQbGFjZWhvbGRlciA9IHRydWU7XG5cdEBJbnB1dCgpIGNzc0NsYXNzID0gJ2Zvcm0tY29udHJvbCc7XG5cdEBJbnB1dCgpIG9ubHlDb3VudHJpZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0QElucHV0KCkgZW5hYmxlQXV0b0NvdW50cnlTZWxlY3QgPSB0cnVlO1xuXHRASW5wdXQoKSBzZWFyY2hDb3VudHJ5RmxhZyA9IGZhbHNlO1xuXHRASW5wdXQoKSBzZWFyY2hDb3VudHJ5RmllbGQ6IFNlYXJjaENvdW50cnlGaWVsZFtdID0gW1NlYXJjaENvdW50cnlGaWVsZC5BbGxdO1xuXHRASW5wdXQoKSBzZWFyY2hDb3VudHJ5UGxhY2Vob2xkZXIgPSAnU2VhcmNoIENvdW50cnknO1xuXHRASW5wdXQoKSBtYXhMZW5ndGggPSAnJztcblx0QElucHV0KCkgdG9vbHRpcEZpZWxkOiBUb29sdGlwTGFiZWw7XG5cdEBJbnB1dCgpIHNlbGVjdEZpcnN0Q291bnRyeSA9IHRydWU7XG5cdEBJbnB1dCgpIHNlbGVjdGVkQ291bnRyeUlTTzogQ291bnRyeUlTTztcblx0QElucHV0KCkgcGhvbmVWYWxpZGF0aW9uID0gdHJ1ZTtcblx0QElucHV0KCkgaW5wdXRJZCA9ICdwaG9uZSc7XG5cdEBJbnB1dCgpIHNlcGFyYXRlRGlhbENvZGUgPSBmYWxzZTtcblx0c2VwYXJhdGVEaWFsQ29kZUNsYXNzOiBzdHJpbmc7XG5cblx0QE91dHB1dCgpIHJlYWRvbmx5IGNvdW50cnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnk+KCk7XG5cblx0c2VsZWN0ZWRDb3VudHJ5OiBDb3VudHJ5ID0ge1xuXHRcdGFyZWFDb2RlczogdW5kZWZpbmVkLFxuXHRcdGRpYWxDb2RlOiAnJyxcblx0XHRmbGFnQ2xhc3M6ICcnLFxuXHRcdGlzbzI6ICcnLFxuXHRcdG5hbWU6ICcnLFxuXHRcdHBsYWNlSG9sZGVyOiAnJyxcblx0XHRwcmlvcml0eTogMCxcblx0fTtcblxuXHRwaG9uZU51bWJlciA9ICcnO1xuXHRhbGxDb3VudHJpZXM6IEFycmF5PENvdW50cnk+ID0gW107XG5cdHByZWZlcnJlZENvdW50cmllc0luRHJvcERvd246IEFycmF5PENvdW50cnk+ID0gW107XG5cdC8vIEhhcyB0byBiZSAnYW55JyB0byBwcmV2ZW50IGEgbmVlZCB0byBpbnN0YWxsIEB0eXBlcy9nb29nbGUtbGlicGhvbmVudW1iZXIgYnkgdGhlIHBhY2thZ2UgdXNlci4uLlxuXHRwaG9uZVV0aWw6IGFueSA9IGxwbi5QaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblx0ZGlzYWJsZWQgPSBmYWxzZTtcblx0ZXJyb3JzOiBBcnJheTxhbnk+ID0gWydQaG9uZSBudW1iZXIgaXMgcmVxdWlyZWQuJ107XG5cdGNvdW50cnlTZWFyY2hUZXh0ID0gJyc7XG5cblx0QFZpZXdDaGlsZCgnY291bnRyeUxpc3QnKSBjb3VudHJ5TGlzdDogRWxlbWVudFJlZjtcblxuXHRvblRvdWNoZWQgPSAoKSA9PiB7fTtcblx0cHJvcGFnYXRlQ2hhbmdlID0gKF86IENoYW5nZURhdGEpID0+IHt9O1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgY291bnRyeUNvZGVEYXRhOiBDb3VudHJ5Q29kZSkge31cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmluaXQoKTtcblx0fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRjb25zdCBzZWxlY3RlZElTTyA9IGNoYW5nZXNbJ3NlbGVjdGVkQ291bnRyeUlTTyddO1xuXHRcdGlmIChcblx0XHRcdHRoaXMuYWxsQ291bnRyaWVzICYmXG5cdFx0XHRzZWxlY3RlZElTTyAmJlxuXHRcdFx0c2VsZWN0ZWRJU08uY3VycmVudFZhbHVlICE9PSBzZWxlY3RlZElTTy5wcmV2aW91c1ZhbHVlXG5cdFx0KSB7XG5cdFx0XHR0aGlzLmdldFNlbGVjdGVkQ291bnRyeSgpO1xuXHRcdH1cblx0XHRpZiAoY2hhbmdlcy5wcmVmZXJyZWRDb3VudHJpZXMpIHtcblx0XHRcdHRoaXMuZ2V0UHJlZmVycmVkQ291bnRyaWVzKCk7XG5cdFx0fVxuXHRcdHRoaXMuY2hlY2tTZXBhcmF0ZURpYWxDb2RlU3R5bGUoKTtcblx0fVxuXG5cdC8qXG5cdFx0VGhpcyBpcyBhIHdyYXBwZXIgbWV0aG9kIHRvIGF2b2lkIGNhbGxpbmcgdGhpcy5uZ09uSW5pdCgpIGluIHdyaXRlVmFsdWUoKS5cblx0XHRSZWY6IGh0dHA6Ly9jb2RlbHl6ZXIuY29tL3J1bGVzL25vLWxpZmUtY3ljbGUtY2FsbC9cblx0Ki9cblx0aW5pdCgpIHtcblx0XHR0aGlzLmZldGNoQ291bnRyeURhdGEoKTtcblx0XHRpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLmdldFByZWZlcnJlZENvdW50cmllcygpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vbmx5Q291bnRyaWVzLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5hbGxDb3VudHJpZXMgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoKGMpID0+XG5cdFx0XHRcdHRoaXMub25seUNvdW50cmllcy5pbmNsdWRlcyhjLmlzbzIpXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5zZWxlY3RGaXJzdENvdW50cnkpIHtcblx0XHRcdGlmICh0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24ubGVuZ3RoKSB7XG5cdFx0XHRcdHRoaXMuc2V0U2VsZWN0ZWRDb3VudHJ5KHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93blswXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkQ291bnRyeSh0aGlzLmFsbENvdW50cmllc1swXSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5KCk7XG5cdFx0dGhpcy5jaGVja1NlcGFyYXRlRGlhbENvZGVTdHlsZSgpO1xuXHR9XG5cblx0Z2V0UHJlZmVycmVkQ291bnRyaWVzKCkge1xuXHRcdGlmICh0aGlzLnByZWZlcnJlZENvdW50cmllcy5sZW5ndGgpIHtcblx0XHRcdHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93biA9IFtdO1xuXHRcdFx0dGhpcy5wcmVmZXJyZWRDb3VudHJpZXMuZm9yRWFjaCgoaXNvMikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcmVmZXJyZWRDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGMuaXNvMiA9PT0gaXNvMjtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0dGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLnB1c2gocHJlZmVycmVkQ291bnRyeVswXSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRnZXRTZWxlY3RlZENvdW50cnkoKSB7XG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5SVNPKSB7XG5cdFx0XHR0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbmQoKGMpID0+IHtcblx0XHRcdFx0cmV0dXJuIGMuaXNvMi50b0xvd2VyQ2FzZSgpID09PSB0aGlzLnNlbGVjdGVkQ291bnRyeUlTTy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0fSk7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZENvdW50cnkpIHtcblx0XHRcdFx0aWYgKHRoaXMucGhvbmVOdW1iZXIpIHtcblx0XHRcdFx0XHR0aGlzLm9uUGhvbmVOdW1iZXJDaGFuZ2UoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBSZWFzb246IGF2b2lkIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81NDM1ODEzMy8xNjE3NTkwXG5cdFx0XHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1udWxsLWtleXdvcmRcblx0XHRcdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHNldFNlbGVjdGVkQ291bnRyeShjb3VudHJ5OiBDb3VudHJ5KSB7XG5cdFx0dGhpcy5zZWxlY3RlZENvdW50cnkgPSBjb3VudHJ5O1xuXHRcdHRoaXMuY291bnRyeUNoYW5nZS5lbWl0KGNvdW50cnkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNlYXJjaCBjb3VudHJ5IGJhc2VkIG9uIGNvdW50cnkgbmFtZSwgaXNvMiwgZGlhbENvZGUgb3IgYWxsIG9mIHRoZW0uXG5cdCAqL1xuXHRzZWFyY2hDb3VudHJ5KCkge1xuXHRcdGlmICghdGhpcy5jb3VudHJ5U2VhcmNoVGV4dCkge1xuXHRcdFx0dGhpcy5jb3VudHJ5TGlzdC5uYXRpdmVFbGVtZW50XG5cdFx0XHRcdC5xdWVyeVNlbGVjdG9yKCcuY291bnRyeS1saXN0IGxpJylcblx0XHRcdFx0LnNjcm9sbEludG9WaWV3KHtcblx0XHRcdFx0XHRiZWhhdmlvcjogJ3Ntb290aCcsXG5cdFx0XHRcdFx0YmxvY2s6ICduZWFyZXN0Jyxcblx0XHRcdFx0XHRpbmxpbmU6ICduZWFyZXN0Jyxcblx0XHRcdFx0fSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGNvdW50cnlTZWFyY2hUZXh0TG93ZXIgPSB0aGlzLmNvdW50cnlTZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XG5cdFx0Y29uc3QgY291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbHRlcigoYykgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2VhcmNoQ291bnRyeUZpZWxkLmluZGV4T2YoU2VhcmNoQ291bnRyeUZpZWxkLkFsbCkgPiAtMSkge1xuXHRcdFx0XHQvLyBTZWFyY2ggaW4gYWxsIGZpZWxkc1xuXHRcdFx0XHRpZiAoYy5pc28yLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChjb3VudHJ5U2VhcmNoVGV4dExvd2VyKSkge1xuXHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKGNvdW50cnlTZWFyY2hUZXh0TG93ZXIpKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGM7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGMuZGlhbENvZGUuc3RhcnRzV2l0aCh0aGlzLmNvdW50cnlTZWFyY2hUZXh0KSkge1xuXHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBPciBzZWFyY2ggYnkgc3BlY2lmaWMgU2VhcmNoQ291bnRyeUZpZWxkKHMpXG5cdFx0XHRcdGlmICh0aGlzLnNlYXJjaENvdW50cnlGaWVsZC5pbmRleE9mKFNlYXJjaENvdW50cnlGaWVsZC5Jc28yKSA+IC0xKSB7XG5cdFx0XHRcdFx0aWYgKGMuaXNvMi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoY291bnRyeVNlYXJjaFRleHRMb3dlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiBjO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5zZWFyY2hDb3VudHJ5RmllbGQuaW5kZXhPZihTZWFyY2hDb3VudHJ5RmllbGQuTmFtZSkgPiAtMSkge1xuXHRcdFx0XHRcdGlmIChjLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKGNvdW50cnlTZWFyY2hUZXh0TG93ZXIpKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gYztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuc2VhcmNoQ291bnRyeUZpZWxkLmluZGV4T2YoU2VhcmNoQ291bnRyeUZpZWxkLkRpYWxDb2RlKSA+IC0xKSB7XG5cdFx0XHRcdFx0aWYgKGMuZGlhbENvZGUuc3RhcnRzV2l0aCh0aGlzLmNvdW50cnlTZWFyY2hUZXh0KSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAoY291bnRyeS5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBlbCA9IHRoaXMuY291bnRyeUxpc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuXHRcdFx0XHQnIycgKyBjb3VudHJ5WzBdLmlzbzJcblx0XHRcdCk7XG5cdFx0XHRpZiAoZWwpIHtcblx0XHRcdFx0ZWwuc2Nyb2xsSW50b1ZpZXcoe1xuXHRcdFx0XHRcdGJlaGF2aW9yOiAnc21vb3RoJyxcblx0XHRcdFx0XHRibG9jazogJ25lYXJlc3QnLFxuXHRcdFx0XHRcdGlubGluZTogJ25lYXJlc3QnLFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0aGlzLmNoZWNrU2VwYXJhdGVEaWFsQ29kZVN0eWxlKCk7XG5cdH1cblxuXHRwdWJsaWMgb25QaG9uZU51bWJlckNoYW5nZSgpOiB2b2lkIHtcblxuXHRcdGxldCBjb3VudHJ5Q29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciBzZXRzIHRoZSB2YWx1ZSBwcm9ncmFtYXRpY2FsbHkgYmFzZWQgb24gYSBwZXJzaXN0ZWQgQ2hhbmdlRGF0YSBvYmouXG5cdFx0aWYgKHRoaXMucGhvbmVOdW1iZXIgJiYgdHlwZW9mIHRoaXMucGhvbmVOdW1iZXIgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRjb25zdCBudW1iZXJPYmo6IENoYW5nZURhdGEgPSB0aGlzLnBob25lTnVtYmVyO1xuXHRcdFx0dGhpcy5waG9uZU51bWJlciA9IG51bWJlck9iai5udW1iZXI7XG5cdFx0XHRjb3VudHJ5Q29kZSA9IG51bWJlck9iai5jb3VudHJ5Q29kZTtcblx0XHR9XG5cblx0XHR0aGlzLnZhbHVlID0gdGhpcy5waG9uZU51bWJlcjtcblx0XHRjb3VudHJ5Q29kZSA9IGNvdW50cnlDb2RlIHx8IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKTtcblx0XHRsZXQgbnVtYmVyOiBscG4uUGhvbmVOdW1iZXI7XG5cdFx0dHJ5IHtcblx0XHRcdG51bWJlciA9IHRoaXMucGhvbmVVdGlsLnBhcnNlKFxuXHRcdFx0XHR0aGlzLnBob25lTnVtYmVyLFxuXHRcdFx0XHRjb3VudHJ5Q29kZSxcblx0XHRcdCk7XG5cdFx0fSBjYXRjaCAoZSkge31cblxuXHRcdC8vIGF1dG8gc2VsZWN0IGNvdW50cnkgYmFzZWQgb24gdGhlIGV4dGVuc2lvbiAoYW5kIGFyZWFDb2RlIGlmIG5lZWRlZCkgKGUuZyBzZWxlY3QgQ2FuYWRhIGlmIG51bWJlciBzdGFydHMgd2l0aCArMSA0MTYpXG5cdFx0aWYgKHRoaXMuZW5hYmxlQXV0b0NvdW50cnlTZWxlY3QpIHtcblx0XHRcdGNvdW50cnlDb2RlID1cblx0XHRcdFx0bnVtYmVyICYmIG51bWJlci5nZXRDb3VudHJ5Q29kZSgpXG5cdFx0XHRcdFx0PyB0aGlzLmdldENvdW50cnlJc29Db2RlKG51bWJlci5nZXRDb3VudHJ5Q29kZSgpLCBudW1iZXIpXG5cdFx0XHRcdFx0OiB0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yO1xuXHRcdFx0aWYgKGNvdW50cnlDb2RlICYmIGNvdW50cnlDb2RlICE9PSB0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yKSB7XG5cdFx0XHRcdGNvbnN0IG5ld0NvdW50cnkgPSB0aGlzLmFsbENvdW50cmllcy5maW5kKFxuXHRcdFx0XHRcdChjKSA9PiBjLmlzbzIgPT09IGNvdW50cnlDb2RlXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmIChuZXdDb3VudHJ5KSB7XG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RlZENvdW50cnkgPSBuZXdDb3VudHJ5O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGNvdW50cnlDb2RlID0gY291bnRyeUNvZGUgPyBjb3VudHJ5Q29kZSA6IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzI7XG5cblx0XHR0aGlzLmNoZWNrU2VwYXJhdGVEaWFsQ29kZVN0eWxlKCk7XG5cblx0XHRpZiAoIXRoaXMudmFsdWUpIHtcblx0XHRcdC8vIFJlYXNvbjogYXZvaWQgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzU0MzU4MTMzLzE2MTc1OTBcblx0XHRcdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbnVsbC1rZXl3b3JkXG5cdFx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgaW50bE5vID0gbnVtYmVyXG5cdFx0XHRcdD8gdGhpcy5waG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbHBuLlBob25lTnVtYmVyRm9ybWF0LklOVEVSTkFUSU9OQUwpXG5cdFx0XHRcdDogJyc7XG5cblx0XHRcdC8vIHBhcnNlIHBob25lTnVtYmVyIGlmIHNlcGFyYXRlIGRpYWwgY29kZSBpcyBuZWVkZWRcblx0XHRcdGlmICh0aGlzLnNlcGFyYXRlRGlhbENvZGUgJiYgaW50bE5vKSB7XG5cdFx0XHRcdHRoaXMudmFsdWUgPSB0aGlzLnJlbW92ZURpYWxDb2RlKGludGxObyk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtcblx0XHRcdFx0bnVtYmVyOiB0aGlzLnZhbHVlLFxuXHRcdFx0XHRpbnRlcm5hdGlvbmFsTnVtYmVyOiBpbnRsTm8sXG5cdFx0XHRcdG5hdGlvbmFsTnVtYmVyOiBudW1iZXJcblx0XHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTClcblx0XHRcdFx0XHQ6ICcnLFxuXHRcdFx0XHRlMTY0TnVtYmVyOiBudW1iZXJcblx0XHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5FMTY0KVxuXHRcdFx0XHRcdDogJycsXG5cdFx0XHRcdGNvdW50cnlDb2RlOiBjb3VudHJ5Q29kZS50b1VwcGVyQ2FzZSgpLFxuXHRcdFx0XHRkaWFsQ29kZTogJysnICsgdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbENvZGUsXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgb25Db3VudHJ5U2VsZWN0KGNvdW50cnk6IENvdW50cnksIGVsKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRTZWxlY3RlZENvdW50cnkoY291bnRyeSk7XG5cblx0XHR0aGlzLmNoZWNrU2VwYXJhdGVEaWFsQ29kZVN0eWxlKCk7XG5cblx0XHRpZiAodGhpcy5waG9uZU51bWJlciAmJiB0aGlzLnBob25lTnVtYmVyLmxlbmd0aCA+IDApIHtcblx0XHRcdHRoaXMudmFsdWUgPSB0aGlzLnBob25lTnVtYmVyO1xuXG5cdFx0XHRsZXQgbnVtYmVyOiBscG4uUGhvbmVOdW1iZXI7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRudW1iZXIgPSB0aGlzLnBob25lVXRpbC5wYXJzZShcblx0XHRcdFx0XHR0aGlzLnBob25lTnVtYmVyLFxuXHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSBjYXRjaCAoZSkge31cblxuXHRcdFx0Y29uc3QgaW50bE5vID0gbnVtYmVyXG5cdFx0XHRcdD8gdGhpcy5waG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbHBuLlBob25lTnVtYmVyRm9ybWF0LklOVEVSTkFUSU9OQUwpXG5cdFx0XHRcdDogJyc7XG5cblx0XHRcdC8vIHBhcnNlIHBob25lTnVtYmVyIGlmIHNlcGFyYXRlIGRpYWwgY29kZSBpcyBuZWVkZWRcblx0XHRcdGlmICh0aGlzLnNlcGFyYXRlRGlhbENvZGUgJiYgaW50bE5vKSB7XG5cdFx0XHRcdHRoaXMudmFsdWUgPSB0aGlzLnJlbW92ZURpYWxDb2RlKGludGxObyk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtcblx0XHRcdFx0bnVtYmVyOiB0aGlzLnZhbHVlLFxuXHRcdFx0XHRpbnRlcm5hdGlvbmFsTnVtYmVyOiBpbnRsTm8sXG5cdFx0XHRcdG5hdGlvbmFsTnVtYmVyOiBudW1iZXJcblx0XHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTClcblx0XHRcdFx0XHQ6ICcnLFxuXHRcdFx0XHRlMTY0TnVtYmVyOiBudW1iZXJcblx0XHRcdFx0XHQ/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5FMTY0KVxuXHRcdFx0XHRcdDogJycsXG5cdFx0XHRcdGNvdW50cnlDb2RlOiB0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yLnRvVXBwZXJDYXNlKCksXG5cdFx0XHRcdGRpYWxDb2RlOiAnKycgKyB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSxcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBSZWFzb246IGF2b2lkIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81NDM1ODEzMy8xNjE3NTkwXG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW51bGwta2V5d29yZFxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XG5cdFx0fVxuXG5cdFx0ZWwuZm9jdXMoKTtcblx0fVxuXG5cdHB1YmxpYyBvbklucHV0S2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBhbGxvd2VkQ2hhcnMgPSAvWzAtOVxcK1xcLVxcIF0vO1xuXHRcdGNvbnN0IGFsbG93ZWRDdHJsQ2hhcnMgPSAvW2F4Y3ZdLzsgLy8gQWxsb3dzIGNvcHktcGFzdGluZ1xuXHRcdGNvbnN0IGFsbG93ZWRPdGhlcktleXMgPSBbXG5cdFx0XHQnQXJyb3dMZWZ0Jyxcblx0XHRcdCdBcnJvd1VwJyxcblx0XHRcdCdBcnJvd1JpZ2h0Jyxcblx0XHRcdCdBcnJvd0Rvd24nLFxuXHRcdFx0J0hvbWUnLFxuXHRcdFx0J0VuZCcsXG5cdFx0XHQnSW5zZXJ0Jyxcblx0XHRcdCdEZWxldGUnLFxuXHRcdFx0J0JhY2tzcGFjZScsXG5cdFx0XTtcblxuXHRcdGlmIChcblx0XHRcdCFhbGxvd2VkQ2hhcnMudGVzdChldmVudC5rZXkpICYmXG5cdFx0XHQhKGV2ZW50LmN0cmxLZXkgJiYgYWxsb3dlZEN0cmxDaGFycy50ZXN0KGV2ZW50LmtleSkpICYmXG5cdFx0XHQhYWxsb3dlZE90aGVyS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpXG5cdFx0KSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBmZXRjaENvdW50cnlEYXRhKCk6IHZvaWQge1xuXHRcdC8qIENsZWFyaW5nIHRoZSBsaXN0IHRvIGF2b2lkIGR1cGxpY2F0ZXMgKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJjYXQxMjM0NS9uZ3gtaW50bC10ZWwtaW5wdXQvaXNzdWVzLzI0OCkgKi9cblx0XHR0aGlzLmFsbENvdW50cmllcyA9IFtdO1xuXG5cdFx0dGhpcy5jb3VudHJ5Q29kZURhdGEuYWxsQ291bnRyaWVzLmZvckVhY2goKGMpID0+IHtcblx0XHRcdGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSB7XG5cdFx0XHRcdG5hbWU6IGNbMF0udG9TdHJpbmcoKSxcblx0XHRcdFx0aXNvMjogY1sxXS50b1N0cmluZygpLFxuXHRcdFx0XHRkaWFsQ29kZTogY1syXS50b1N0cmluZygpLFxuXHRcdFx0XHRwcmlvcml0eTogK2NbM10gfHwgMCxcblx0XHRcdFx0YXJlYUNvZGVzOiAoY1s0XSBhcyBzdHJpbmdbXSkgfHwgdW5kZWZpbmVkLFxuXHRcdFx0XHRmbGFnQ2xhc3M6IGNbMV0udG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSgpLFxuXHRcdFx0XHRwbGFjZUhvbGRlcjogJycsXG5cdFx0XHR9O1xuXG5cdFx0XHRpZiAodGhpcy5lbmFibGVQbGFjZWhvbGRlcikge1xuXHRcdFx0XHRjb3VudHJ5LnBsYWNlSG9sZGVyID0gdGhpcy5nZXRQaG9uZU51bWJlclBsYWNlSG9sZGVyKFxuXHRcdFx0XHRcdGNvdW50cnkuaXNvMi50b1VwcGVyQ2FzZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuYWxsQ291bnRyaWVzLnB1c2goY291bnRyeSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0UGhvbmVOdW1iZXJQbGFjZUhvbGRlcihjb3VudHJ5Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIHRoaXMucGhvbmVVdGlsLmZvcm1hdChcblx0XHRcdFx0dGhpcy5waG9uZVV0aWwuZ2V0RXhhbXBsZU51bWJlcihjb3VudHJ5Q29kZSksXG5cdFx0XHRcdGxwbi5QaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHJldHVybiBlO1xuXHRcdH1cblx0fVxuXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG5cdH1cblxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcblx0fVxuXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXHR9XG5cblx0d3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuXHRcdGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpcy5pbml0KCk7XG5cdFx0fVxuXHRcdHRoaXMucGhvbmVOdW1iZXIgPSBvYmo7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm9uUGhvbmVOdW1iZXJDaGFuZ2UoKTtcblx0XHR9LCAxKTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q291bnRyeUlzb0NvZGUoXG5cdFx0Y291bnRyeUNvZGU6IG51bWJlcixcblx0XHRudW1iZXI6IGxwbi5QaG9uZU51bWJlclxuXHQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdC8vIFdpbGwgdXNlIHRoaXMgdG8gbWF0Y2ggYXJlYSBjb2RlIGZyb20gdGhlIGZpcnN0IG51bWJlcnNcblx0XHRjb25zdCByYXdOdW1iZXIgPSBudW1iZXJbJ3ZhbHVlc18nXVsnMiddLnRvU3RyaW5nKCk7XG5cdFx0Ly8gTGlzdCBvZiBhbGwgY291bnRyaWVzIHdpdGggY291bnRyeUNvZGUgKGNhbiBiZSBtb3JlIHRoYW4gb25lLiBlLnguIFVTLCBDQSwgRE8sIFBSIGFsbCBoYXZlICsxIGNvdW50cnlDb2RlKVxuXHRcdGNvbnN0IGNvdW50cmllcyA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbHRlcihcblx0XHRcdChjKSA9PiBjLmRpYWxDb2RlID09PSBjb3VudHJ5Q29kZS50b1N0cmluZygpXG5cdFx0KTtcblx0XHQvLyBNYWluIGNvdW50cnkgaXMgdGhlIGNvdW50cnksIHdoaWNoIGhhcyBubyBhcmVhQ29kZXMgc3BlY2lmaWVkIGluIGNvdW50cnktY29kZS50cyBmaWxlLlxuXHRcdGNvbnN0IG1haW5Db3VudHJ5ID0gY291bnRyaWVzLmZpbmQoKGMpID0+IGMuYXJlYUNvZGVzID09PSB1bmRlZmluZWQpO1xuXHRcdC8vIFNlY29uZGFyeSBjb3VudHJpZXMgYXJlIGFsbCBjb3VudHJpZXMsIHdoaWNoIGhhdmUgYXJlYUNvZGVzIHNwZWNpZmllZCBpbiBjb3VudHJ5LWNvZGUudHMgZmlsZS5cblx0XHRjb25zdCBzZWNvbmRhcnlDb3VudHJpZXMgPSBjb3VudHJpZXMuZmlsdGVyKFxuXHRcdFx0KGMpID0+IGMuYXJlYUNvZGVzICE9PSB1bmRlZmluZWRcblx0XHQpO1xuXHRcdGxldCBtYXRjaGVkQ291bnRyeSA9IG1haW5Db3VudHJ5ID8gbWFpbkNvdW50cnkuaXNvMiA6IHVuZGVmaW5lZDtcblxuXHRcdC8qXG5cdFx0XHRJdGVyYXRlIG92ZXIgZWFjaCBzZWNvbmRhcnkgY291bnRyeSBhbmQgY2hlY2sgaWYgbmF0aW9uYWxOdW1iZXIgc3RhcnRzIHdpdGggYW55IG9mIGFyZWFDb2RlcyBhdmFpbGFibGUuXG5cdFx0XHRJZiBubyBtYXRjaGVzIGZvdW5kLCBmYWxsYmFjayB0byB0aGUgbWFpbiBjb3VudHJ5LlxuXHRcdCovXG5cdFx0c2Vjb25kYXJ5Q291bnRyaWVzLmZvckVhY2goKGNvdW50cnkpID0+IHtcblx0XHRcdGNvdW50cnkuYXJlYUNvZGVzLmZvckVhY2goKGFyZWFDb2RlKSA9PiB7XG5cdFx0XHRcdGlmIChyYXdOdW1iZXIuc3RhcnRzV2l0aChhcmVhQ29kZSkpIHtcblx0XHRcdFx0XHRtYXRjaGVkQ291bnRyeSA9IGNvdW50cnkuaXNvMjtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gbWF0Y2hlZENvdW50cnk7XG5cdH1cblxuXHRzZXBhcmF0ZURpYWxDb2RlUGxhY2VIb2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMucmVtb3ZlRGlhbENvZGUocGxhY2Vob2xkZXIpO1xuXHR9XG5cblx0cHJpdmF0ZSByZW1vdmVEaWFsQ29kZShwaG9uZU51bWJlcjogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5zZXBhcmF0ZURpYWxDb2RlICYmIHBob25lTnVtYmVyKSB7XG5cdFx0XHRwaG9uZU51bWJlciA9IHBob25lTnVtYmVyLnN1YnN0cihwaG9uZU51bWJlci5pbmRleE9mKCcgJykgKyAxKTtcblx0XHR9XG5cdFx0cmV0dXJuIHBob25lTnVtYmVyO1xuXHR9XG5cblx0Ly8gYWRqdXN0IGlucHV0IGFsaWdubWVudFxuXHRwcml2YXRlIGNoZWNrU2VwYXJhdGVEaWFsQ29kZVN0eWxlKCkge1xuXHRcdGlmICh0aGlzLnNlcGFyYXRlRGlhbENvZGUgJiYgdGhpcy5zZWxlY3RlZENvdW50cnkpIHtcblx0XHRcdGNvbnN0IGNudHJ5Q2QgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZTtcblx0XHRcdHRoaXMuc2VwYXJhdGVEaWFsQ29kZUNsYXNzID1cblx0XHRcdFx0J3NlcGFyYXRlLWRpYWwtY29kZSBpdGktc2RjLScgKyAoY250cnlDZC5sZW5ndGggKyAxKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zZXBhcmF0ZURpYWxDb2RlQ2xhc3MgPSAnJztcblx0XHR9XG5cdH1cbn1cbiJdfQ==
{
"name": "ngx-intl-tel-input",
"version": "2.4.2",
"version": "2.4.3",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "8.x - 9.x",

@@ -147,7 +147,18 @@ # International Telephone Input for Angular (NgxIntlTelInput)

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore -->
<table><tr><td align="center"><a href="https://github.com/webcat12345"><img src="https://avatars3.githubusercontent.com/u/19761422?v=4" width="100px;" alt="webcat_black"/><br /><sub><b>webcat_black</b></sub></a><br /><a href="#design-webcat12345" title="Design">🎨</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=webcat12345" title="Code">💻</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=webcat12345" title="Documentation">📖</a> <a href="#ideas-webcat12345" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-webcat12345" title="Answering Questions">💬</a> <a href="#infra-webcat12345" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-webcat12345" title="Examples">💡</a> <a href="#maintenance-webcat12345" title="Maintenance">🚧</a> <a href="#review-webcat12345" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=webcat12345" title="Tests">⚠️</a></td><td align="center"><a href="http://pasevin.com"><img src="https://avatars2.githubusercontent.com/u/1058469?v=4" width="100px;" alt="Aleksandr Pasevin"/><br /><sub><b>Aleksandr Pasevin</b></sub></a><br /><a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=pasevin" title="Code">💻</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=pasevin" title="Documentation">📖</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/issues?q=author%3Apasevin" title="Bug reports">🐛</a> <a href="#platform-pasevin" title="Packaging/porting to new platform">📦</a> <a href="#plugin-pasevin" title="Plugin/utility libraries">🔌</a> <a href="#question-pasevin" title="Answering Questions">💬</a> <a href="#infra-pasevin" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-pasevin" title="Examples">💡</a> <a href="#maintenance-pasevin" title="Maintenance">🚧</a> <a href="#review-pasevin" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=pasevin" title="Tests">⚠️</a></td><td align="center"><a href="https://github.com/Dviejopomata"><img src="https://avatars0.githubusercontent.com/u/6862893?v=4" width="100px;" alt="Dviejo"/><br /><sub><b>Dviejo</b></sub></a><br /><a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=Dviejopomata" title="Code">💻</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/issues?q=author%3ADviejopomata" title="Bug reports">🐛</a> <a href="#example-Dviejopomata" title="Examples">💡</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=Dviejopomata" title="Tests">⚠️</a> <a href="#question-Dviejopomata" title="Answering Questions">💬</a> <a href="#maintenance-Dviejopomata" title="Maintenance">🚧</a> <a href="#review-Dviejopomata" title="Reviewed Pull Requests">👀</a></td><td align="center"><a href="https://www.fosforito.net"><img src="https://avatars3.githubusercontent.com/u/5000255?v=4" width="100px;" alt="Jens Wagner"/><br /><sub><b>Jens Wagner</b></sub></a><br /><a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=Fosforito" title="Code">💻</a></td></tr></table>
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/webcat12345"><img src="https://avatars3.githubusercontent.com/u/19761422?v=4" width="100px;" alt=""/><br /><sub><b>webcat_black</b></sub></a><br /><a href="#design-webcat12345" title="Design">🎨</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=webcat12345" title="Code">💻</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=webcat12345" title="Documentation">📖</a> <a href="#ideas-webcat12345" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-webcat12345" title="Answering Questions">💬</a> <a href="#infra-webcat12345" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-webcat12345" title="Examples">💡</a> <a href="#maintenance-webcat12345" title="Maintenance">🚧</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/pulls?q=is%3Apr+reviewed-by%3Awebcat12345" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=webcat12345" title="Tests">⚠️</a></td>
<td align="center"><a href="http://pasevin.com"><img src="https://avatars2.githubusercontent.com/u/1058469?v=4" width="100px;" alt=""/><br /><sub><b>Aleksandr Pasevin</b></sub></a><br /><a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=pasevin" title="Code">💻</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=pasevin" title="Documentation">📖</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/issues?q=author%3Apasevin" title="Bug reports">🐛</a> <a href="#platform-pasevin" title="Packaging/porting to new platform">📦</a> <a href="#plugin-pasevin" title="Plugin/utility libraries">🔌</a> <a href="#question-pasevin" title="Answering Questions">💬</a> <a href="#infra-pasevin" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#example-pasevin" title="Examples">💡</a> <a href="#maintenance-pasevin" title="Maintenance">🚧</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/pulls?q=is%3Apr+reviewed-by%3Apasevin" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=pasevin" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/Dviejopomata"><img src="https://avatars0.githubusercontent.com/u/6862893?v=4" width="100px;" alt=""/><br /><sub><b>Dviejo</b></sub></a><br /><a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=Dviejopomata" title="Code">💻</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/issues?q=author%3ADviejopomata" title="Bug reports">🐛</a> <a href="#example-Dviejopomata" title="Examples">💡</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=Dviejopomata" title="Tests">⚠️</a> <a href="#question-Dviejopomata" title="Answering Questions">💬</a> <a href="#maintenance-Dviejopomata" title="Maintenance">🚧</a> <a href="https://github.com/webcat12345/ngx-intl-tel-input/pulls?q=is%3Apr+reviewed-by%3ADviejopomata" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://www.fosforito.net"><img src="https://avatars3.githubusercontent.com/u/5000255?v=4" width="100px;" alt=""/><br /><sub><b>Jens Wagner</b></sub></a><br /><a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=Fosforito" title="Code">💻</a></td>
<td align="center"><a href="http://kino.codes"><img src="https://avatars3.githubusercontent.com/u/22554212?v=4" width="100px;" alt=""/><br /><sub><b>Kino Roy</b></sub></a><br /><a href="https://github.com/webcat12345/ngx-intl-tel-input/commits?author=kinoroy" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc