diff --git a/reference-artifacts/Custom-Scripts/lza-upgrade/src/assets/cloudformation/AlbIpForwardingStack.template.json b/reference-artifacts/Custom-Scripts/lza-upgrade/src/assets/cloudformation/AlbIpForwardingStack.template.json index aa3bcf043..4939abf80 100644 --- a/reference-artifacts/Custom-Scripts/lza-upgrade/src/assets/cloudformation/AlbIpForwardingStack.template.json +++ b/reference-artifacts/Custom-Scripts/lza-upgrade/src/assets/cloudformation/AlbIpForwardingStack.template.json @@ -82,7 +82,10 @@ "Fn::Join": [ "", [ - "Alb-Ip-Forwarding-", + { + "Ref": "acceleratorPrefix" + }, + "-Alb-Ip-Forwarding-", { "Ref": "vpcName" } @@ -93,7 +96,15 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/ddbDNSFirewallTable/Resource" + "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/ddbDNSFirewallTable/Resource", + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W28", + "reason": "Names must be set explicitly to be protected by accelerator SCPs" + } + ] + } } }, "AlbIpForwardingdnsFWLambdaServiceRoleE2550228": { @@ -141,7 +152,14 @@ } }, "Metadata": { - "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/dnsFWLambda/ServiceRole/Resource" + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W28", + "reason": "Names must be set explicitly to be protected by accelerator SCPs`" + } + ] + } } }, "AlbIpForwardingdnsFWLambdaServiceRoleDefaultPolicyF5FC440E": { @@ -211,7 +229,7 @@ "Type": "AWS::Lambda::Function", "Properties": { "Code": { - "ZipFile": "\"use strict\";var Td=Object.create;var rr=Object.defineProperty;var Ld=Object.getOwnPropertyDescriptor;var Cd=Object.getOwnPropertyNames;var Rd=Object.getPrototypeOf,Ed=Object.prototype.hasOwnProperty;var Sd=(u,v)=>()=>(v||u((v={exports:{}}).exports,v),v.exports),Od=(u,v)=>{for(var x in v)rr(u,x,{get:v[x],enumerable:!0})},co=(u,v,x,m)=>{if(v&&typeof v==\"object\"||typeof v==\"function\")for(let I of Cd(v))!Ed.call(u,I)&&I!==x&&rr(u,I,{get:()=>v[I],enumerable:!(m=Ld(v,I))||m.enumerable});return u};var ho=(u,v,x)=>(x=u!=null?Td(Rd(u)):{},co(v||!u||!u.__esModule?rr(x,\"default\",{value:u,enumerable:!0}):x,u)),Pd=u=>co(rr({},\"__esModule\",{value:!0}),u);var xo=Sd((Ft,oe)=>{(function(){var u,v=\"4.17.21\",x=200,m=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",I=\"Expected a function\",j=\"Invalid `variable` option passed into `_.template`\",ut=\"__lodash_hash_undefined__\",Eo=500,se=\"__lodash_placeholder__\",Jn=1,Oi=2,mt=4,wt=1,ae=2,pn=1,ft=2,Pi=4,Sn=8,At=16,On=32,xt=64,Bn=128,Mt=256,ur=512,So=30,Oo=\"...\",Po=800,bo=16,bi=1,Do=2,Wo=3,ot=1/0,Yn=9007199254740991,Bo=17976931348623157e292,le=0/0,Pn=4294967295,Go=Pn-1,Fo=Pn>>>1,Mo=[[\"ary\",Bn],[\"bind\",pn],[\"bindKey\",ft],[\"curry\",Sn],[\"curryRight\",At],[\"flip\",ur],[\"partial\",On],[\"partialRight\",xt],[\"rearg\",Mt]],yt=\"[object Arguments]\",ce=\"[object Array]\",No=\"[object AsyncFunction]\",Nt=\"[object Boolean]\",Ut=\"[object Date]\",Uo=\"[object DOMException]\",he=\"[object Error]\",ge=\"[object Function]\",Di=\"[object GeneratorFunction]\",In=\"[object Map]\",$t=\"[object Number]\",$o=\"[object Null]\",Gn=\"[object Object]\",Wi=\"[object Promise]\",Ho=\"[object Proxy]\",Ht=\"[object RegExp]\",Tn=\"[object Set]\",Kt=\"[object String]\",pe=\"[object Symbol]\",Ko=\"[object Undefined]\",qt=\"[object WeakMap]\",qo=\"[object WeakSet]\",zt=\"[object ArrayBuffer]\",It=\"[object DataView]\",fr=\"[object Float32Array]\",or=\"[object Float64Array]\",sr=\"[object Int8Array]\",ar=\"[object Int16Array]\",lr=\"[object Int32Array]\",cr=\"[object Uint8Array]\",hr=\"[object Uint8ClampedArray]\",gr=\"[object Uint16Array]\",pr=\"[object Uint32Array]\",zo=/\\b__p \\+= '';/g,Zo=/\\b(__p \\+=) '' \\+/g,Jo=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,Bi=/&(?:amp|lt|gt|quot|#39);/g,Gi=/[&<>\"']/g,Yo=RegExp(Bi.source),Xo=RegExp(Gi.source),Qo=/<%-([\\s\\S]+?)%>/g,Vo=/<%([\\s\\S]+?)%>/g,Fi=/<%=([\\s\\S]+?)%>/g,ko=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,jo=/^\\w*$/,ns=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,dr=/[\\\\^$.*+?()[\\]{}|]/g,ts=RegExp(dr.source),_r=/^\\s+/,es=/\\s/,rs=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,is=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,us=/,? & /,fs=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,os=/[()=,{}\\[\\]\\/\\s]/,ss=/\\\\(\\\\)?/g,as=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Mi=/\\w*$/,ls=/^[-+]0x[0-9a-f]+$/i,cs=/^0b[01]+$/i,hs=/^\\[object .+?Constructor\\]$/,gs=/^0o[0-7]+$/i,ps=/^(?:0|[1-9]\\d*)$/,ds=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,de=/($^)/,_s=/['\\n\\r\\u2028\\u2029\\\\]/g,_e=\"\\\\ud800-\\\\udfff\",vs=\"\\\\u0300-\\\\u036f\",ms=\"\\\\ufe20-\\\\ufe2f\",ws=\"\\\\u20d0-\\\\u20ff\",Ni=vs+ms+ws,Ui=\"\\\\u2700-\\\\u27bf\",$i=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",As=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",xs=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",ys=\"\\\\u2000-\\\\u206f\",Is=\" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",Hi=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",Ki=\"\\\\ufe0e\\\\ufe0f\",qi=As+xs+ys+Is,vr=\"['\\u2019]\",Ts=\"[\"+_e+\"]\",zi=\"[\"+qi+\"]\",ve=\"[\"+Ni+\"]\",Zi=\"\\\\d+\",Ls=\"[\"+Ui+\"]\",Ji=\"[\"+$i+\"]\",Yi=\"[^\"+_e+qi+Zi+Ui+$i+Hi+\"]\",mr=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",Cs=\"(?:\"+ve+\"|\"+mr+\")\",Xi=\"[^\"+_e+\"]\",wr=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Ar=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",Tt=\"[\"+Hi+\"]\",Qi=\"\\\\u200d\",Vi=\"(?:\"+Ji+\"|\"+Yi+\")\",Rs=\"(?:\"+Tt+\"|\"+Yi+\")\",ki=\"(?:\"+vr+\"(?:d|ll|m|re|s|t|ve))?\",ji=\"(?:\"+vr+\"(?:D|LL|M|RE|S|T|VE))?\",nu=Cs+\"?\",tu=\"[\"+Ki+\"]?\",Es=\"(?:\"+Qi+\"(?:\"+[Xi,wr,Ar].join(\"|\")+\")\"+tu+nu+\")*\",Ss=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",Os=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",eu=tu+nu+Es,Ps=\"(?:\"+[Ls,wr,Ar].join(\"|\")+\")\"+eu,bs=\"(?:\"+[Xi+ve+\"?\",ve,wr,Ar,Ts].join(\"|\")+\")\",Ds=RegExp(vr,\"g\"),Ws=RegExp(ve,\"g\"),xr=RegExp(mr+\"(?=\"+mr+\")|\"+bs+eu,\"g\"),Bs=RegExp([Tt+\"?\"+Ji+\"+\"+ki+\"(?=\"+[zi,Tt,\"$\"].join(\"|\")+\")\",Rs+\"+\"+ji+\"(?=\"+[zi,Tt+Vi,\"$\"].join(\"|\")+\")\",Tt+\"?\"+Vi+\"+\"+ki,Tt+\"+\"+ji,Os,Ss,Zi,Ps].join(\"|\"),\"g\"),Gs=RegExp(\"[\"+Qi+_e+Ni+Ki+\"]\"),Fs=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ms=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Ns=-1,U={};U[fr]=U[or]=U[sr]=U[ar]=U[lr]=U[cr]=U[hr]=U[gr]=U[pr]=!0,U[yt]=U[ce]=U[zt]=U[Nt]=U[It]=U[Ut]=U[he]=U[ge]=U[In]=U[$t]=U[Gn]=U[Ht]=U[Tn]=U[Kt]=U[qt]=!1;var N={};N[yt]=N[ce]=N[zt]=N[It]=N[Nt]=N[Ut]=N[fr]=N[or]=N[sr]=N[ar]=N[lr]=N[In]=N[$t]=N[Gn]=N[Ht]=N[Tn]=N[Kt]=N[pe]=N[cr]=N[hr]=N[gr]=N[pr]=!0,N[he]=N[ge]=N[qt]=!1;var Us={\\u00C0:\"A\",\\u00C1:\"A\",\\u00C2:\"A\",\\u00C3:\"A\",\\u00C4:\"A\",\\u00C5:\"A\",\\u00E0:\"a\",\\u00E1:\"a\",\\u00E2:\"a\",\\u00E3:\"a\",\\u00E4:\"a\",\\u00E5:\"a\",\\u00C7:\"C\",\\u00E7:\"c\",\\u00D0:\"D\",\\u00F0:\"d\",\\u00C8:\"E\",\\u00C9:\"E\",\\u00CA:\"E\",\\u00CB:\"E\",\\u00E8:\"e\",\\u00E9:\"e\",\\u00EA:\"e\",\\u00EB:\"e\",\\u00CC:\"I\",\\u00CD:\"I\",\\u00CE:\"I\",\\u00CF:\"I\",\\u00EC:\"i\",\\u00ED:\"i\",\\u00EE:\"i\",\\u00EF:\"i\",\\u00D1:\"N\",\\u00F1:\"n\",\\u00D2:\"O\",\\u00D3:\"O\",\\u00D4:\"O\",\\u00D5:\"O\",\\u00D6:\"O\",\\u00D8:\"O\",\\u00F2:\"o\",\\u00F3:\"o\",\\u00F4:\"o\",\\u00F5:\"o\",\\u00F6:\"o\",\\u00F8:\"o\",\\u00D9:\"U\",\\u00DA:\"U\",\\u00DB:\"U\",\\u00DC:\"U\",\\u00F9:\"u\",\\u00FA:\"u\",\\u00FB:\"u\",\\u00FC:\"u\",\\u00DD:\"Y\",\\u00FD:\"y\",\\u00FF:\"y\",\\u00C6:\"Ae\",\\u00E6:\"ae\",\\u00DE:\"Th\",\\u00FE:\"th\",\\u00DF:\"ss\",\\u0100:\"A\",\\u0102:\"A\",\\u0104:\"A\",\\u0101:\"a\",\\u0103:\"a\",\\u0105:\"a\",\\u0106:\"C\",\\u0108:\"C\",\\u010A:\"C\",\\u010C:\"C\",\\u0107:\"c\",\\u0109:\"c\",\\u010B:\"c\",\\u010D:\"c\",\\u010E:\"D\",\\u0110:\"D\",\\u010F:\"d\",\\u0111:\"d\",\\u0112:\"E\",\\u0114:\"E\",\\u0116:\"E\",\\u0118:\"E\",\\u011A:\"E\",\\u0113:\"e\",\\u0115:\"e\",\\u0117:\"e\",\\u0119:\"e\",\\u011B:\"e\",\\u011C:\"G\",\\u011E:\"G\",\\u0120:\"G\",\\u0122:\"G\",\\u011D:\"g\",\\u011F:\"g\",\\u0121:\"g\",\\u0123:\"g\",\\u0124:\"H\",\\u0126:\"H\",\\u0125:\"h\",\\u0127:\"h\",\\u0128:\"I\",\\u012A:\"I\",\\u012C:\"I\",\\u012E:\"I\",\\u0130:\"I\",\\u0129:\"i\",\\u012B:\"i\",\\u012D:\"i\",\\u012F:\"i\",\\u0131:\"i\",\\u0134:\"J\",\\u0135:\"j\",\\u0136:\"K\",\\u0137:\"k\",\\u0138:\"k\",\\u0139:\"L\",\\u013B:\"L\",\\u013D:\"L\",\\u013F:\"L\",\\u0141:\"L\",\\u013A:\"l\",\\u013C:\"l\",\\u013E:\"l\",\\u0140:\"l\",\\u0142:\"l\",\\u0143:\"N\",\\u0145:\"N\",\\u0147:\"N\",\\u014A:\"N\",\\u0144:\"n\",\\u0146:\"n\",\\u0148:\"n\",\\u014B:\"n\",\\u014C:\"O\",\\u014E:\"O\",\\u0150:\"O\",\\u014D:\"o\",\\u014F:\"o\",\\u0151:\"o\",\\u0154:\"R\",\\u0156:\"R\",\\u0158:\"R\",\\u0155:\"r\",\\u0157:\"r\",\\u0159:\"r\",\\u015A:\"S\",\\u015C:\"S\",\\u015E:\"S\",\\u0160:\"S\",\\u015B:\"s\",\\u015D:\"s\",\\u015F:\"s\",\\u0161:\"s\",\\u0162:\"T\",\\u0164:\"T\",\\u0166:\"T\",\\u0163:\"t\",\\u0165:\"t\",\\u0167:\"t\",\\u0168:\"U\",\\u016A:\"U\",\\u016C:\"U\",\\u016E:\"U\",\\u0170:\"U\",\\u0172:\"U\",\\u0169:\"u\",\\u016B:\"u\",\\u016D:\"u\",\\u016F:\"u\",\\u0171:\"u\",\\u0173:\"u\",\\u0174:\"W\",\\u0175:\"w\",\\u0176:\"Y\",\\u0177:\"y\",\\u0178:\"Y\",\\u0179:\"Z\",\\u017B:\"Z\",\\u017D:\"Z\",\\u017A:\"z\",\\u017C:\"z\",\\u017E:\"z\",\\u0132:\"IJ\",\\u0133:\"ij\",\\u0152:\"Oe\",\\u0153:\"oe\",\\u0149:\"'n\",\\u017F:\"s\"},$s={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},Hs={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"},Ks={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},qs=parseFloat,zs=parseInt,ru=typeof global==\"object\"&&global&&global.Object===Object&&global,Zs=typeof self==\"object\"&&self&&self.Object===Object&&self,Y=ru||Zs||Function(\"return this\")(),yr=typeof Ft==\"object\"&&Ft&&!Ft.nodeType&&Ft,st=yr&&typeof oe==\"object\"&&oe&&!oe.nodeType&&oe,iu=st&&st.exports===yr,Ir=iu&&ru.process,dn=function(){try{var l=st&&st.require&&st.require(\"util\").types;return l||Ir&&Ir.binding&&Ir.binding(\"util\")}catch{}}(),uu=dn&&dn.isArrayBuffer,fu=dn&&dn.isDate,ou=dn&&dn.isMap,su=dn&&dn.isRegExp,au=dn&&dn.isSet,lu=dn&&dn.isTypedArray;function sn(l,g,h){switch(h.length){case 0:return l.call(g);case 1:return l.call(g,h[0]);case 2:return l.call(g,h[0],h[1]);case 3:return l.call(g,h[0],h[1],h[2])}return l.apply(g,h)}function Js(l,g,h,A){for(var R=-1,B=l==null?0:l.length;++R-1}function Tr(l,g,h){for(var A=-1,R=l==null?0:l.length;++A-1;);return h}function mu(l,g){for(var h=l.length;h--&&Lt(g,l[h],0)>-1;);return h}function ea(l,g){for(var h=l.length,A=0;h--;)l[h]===g&&++A;return A}var ra=Er(Us),ia=Er($s);function ua(l){return\"\\\\\"+Ks[l]}function fa(l,g){return l==null?u:l[g]}function Ct(l){return Gs.test(l)}function oa(l){return Fs.test(l)}function sa(l){for(var g,h=[];!(g=l.next()).done;)h.push(g.value);return h}function br(l){var g=-1,h=Array(l.size);return l.forEach(function(A,R){h[++g]=[R,A]}),h}function wu(l,g){return function(h){return l(g(h))}}function Vn(l,g){for(var h=-1,A=l.length,R=0,B=[];++h-1}function Xa(n,t){var e=this.__data__,r=Be(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}Fn.prototype.clear=za,Fn.prototype.delete=Za,Fn.prototype.get=Ja,Fn.prototype.has=Ya,Fn.prototype.set=Xa;function Mn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t=t?n:t)),n}function wn(n,t,e,r,i,o){var s,a=t&Jn,c=t&Oi,p=t&mt;if(e&&(s=i?e(n,r,i,o):e(n)),s!==u)return s;if(!H(n))return n;var d=E(n);if(d){if(s=jl(n),!a)return rn(n,s)}else{var _=k(n),w=_==ge||_==Di;if(it(n))return tf(n,a);if(_==Gn||_==yt||w&&!i){if(s=c||w?{}:xf(n),!a)return c?Hl(n,cl(s,n)):$l(n,Pu(s,n))}else{if(!N[_])return i?n:{};s=nc(n,_,a)}}o||(o=new Cn);var y=o.get(n);if(y)return y;o.set(n,s),Qf(n)?n.forEach(function(C){s.add(wn(C,t,e,C,n,o))}):Yf(n)&&n.forEach(function(C,b){s.set(b,wn(C,t,e,b,n,o))});var L=p?c?ii:ri:c?fn:X,O=d?u:L(n);return _n(O||n,function(C,b){O&&(b=C,C=n[b]),kt(s,b,wn(C,t,e,b,n,o))}),s}function hl(n){var t=X(n);return function(e){return bu(e,n,t)}}function bu(n,t,e){var r=e.length;if(n==null)return!r;for(n=M(n);r--;){var i=e[r],o=t[i],s=n[i];if(s===u&&!(i in n)||!o(s))return!1}return!0}function Du(n,t,e){if(typeof n!=\"function\")throw new vn(I);return ue(function(){n.apply(u,e)},t)}function jt(n,t,e,r){var i=-1,o=me,s=!0,a=n.length,c=[],p=t.length;if(!a)return c;e&&(t=$(t,an(e))),r?(o=Tr,s=!1):t.length>=x&&(o=Zt,s=!1,t=new ct(t));n:for(;++ii?0:i+e),r=r===u||r>i?i:S(r),r<0&&(r+=i),r=e>r?0:kf(r);e0&&e(a)?t>1?Q(a,t-1,e,r,i):Qn(i,a):r||(i[i.length]=a)}return i}var Nr=sf(),Gu=sf(!0);function bn(n,t){return n&&Nr(n,t,X)}function Ur(n,t){return n&&Gu(n,t,X)}function Fe(n,t){return Xn(t,function(e){return Kn(n[e])})}function gt(n,t){t=et(t,n);for(var e=0,r=t.length;n!=null&&et}function dl(n,t){return n!=null&&F.call(n,t)}function _l(n,t){return n!=null&&t in M(n)}function vl(n,t,e){return n>=V(t,e)&&n=120&&d.length>=120)?new ct(s&&d):u}d=n[0];var _=-1,w=a[0];n:for(;++_-1;)a!==n&&Ee.call(a,c,1),Ee.call(n,c,1);return n}function Ju(n,t){for(var e=n?t.length:0,r=e-1;e--;){var i=t[e];if(e==r||i!==o){var o=i;Hn(i)?Ee.call(n,i,1):Qr(n,i)}}return n}function Jr(n,t){return n+Pe(Ru()*(t-n+1))}function Ol(n,t,e,r){for(var i=-1,o=J(Oe((t-n)/(e||1)),0),s=h(o);o--;)s[r?o:++i]=n,n+=e;return s}function Yr(n,t){var e=\"\";if(!n||t<1||t>Yn)return e;do t%2&&(e+=n),t=Pe(t/2),t&&(n+=n);while(t);return e}function P(n,t){return ci(Tf(n,t,on),n+\"\")}function Pl(n){return Ou(Gt(n))}function bl(n,t){var e=Gt(n);return Ye(e,ht(t,0,e.length))}function ee(n,t,e,r){if(!H(n))return n;t=et(t,n);for(var i=-1,o=t.length,s=o-1,a=n;a!=null&&++ii?0:i+t),e=e>i?i:e,e<0&&(e+=i),i=t>e?0:e-t>>>0,t>>>=0;for(var o=h(i);++r>>1,s=n[o];s!==null&&!cn(s)&&(e?s<=t:s=x){var p=t?null:Zl(n);if(p)return Ae(p);s=!1,i=Zt,c=new ct}else c=t?[]:a;n:for(;++r=r?n:An(n,t,e)}var nf=Ia||function(n){return Y.clearTimeout(n)};function tf(n,t){if(t)return n.slice();var e=n.length,r=yu?yu(e):new n.constructor(e);return n.copy(r),r}function ni(n){var t=new n.constructor(n.byteLength);return new Ce(t).set(new Ce(n)),t}function Fl(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}function Ml(n){var t=new n.constructor(n.source,Mi.exec(n));return t.lastIndex=n.lastIndex,t}function Nl(n){return Vt?M(Vt.call(n)):{}}function ef(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}function rf(n,t){if(n!==t){var e=n!==u,r=n===null,i=n===n,o=cn(n),s=t!==u,a=t===null,c=t===t,p=cn(t);if(!a&&!p&&!o&&n>t||o&&s&&c&&!a&&!p||r&&s&&c||!e&&c||!i)return 1;if(!r&&!o&&!p&&n=a)return c;var p=e[r];return c*(p==\"desc\"?-1:1)}}return n.index-t.index}function uf(n,t,e,r){for(var i=-1,o=n.length,s=e.length,a=-1,c=t.length,p=J(o-s,0),d=h(c+p),_=!r;++a1?e[i-1]:u,s=i>2?e[2]:u;for(o=n.length>3&&typeof o==\"function\"?(i--,o):u,s&&tn(e[0],e[1],s)&&(o=i<3?u:o,i=1),t=M(t);++r-1?i[o?t[s]:s]:u}}function cf(n){return $n(function(t){var e=t.length,r=e,i=mn.prototype.thru;for(n&&t.reverse();r--;){var o=t[r];if(typeof o!=\"function\")throw new vn(I);if(i&&!s&&Ze(o)==\"wrapper\")var s=new mn([],!0)}for(r=s?r:e;++r1&&W.reverse(),d&&ca))return!1;var p=o.get(n),d=o.get(t);if(p&&d)return p==t&&d==n;var _=-1,w=!0,y=e&ae?new ct:u;for(o.set(n,t),o.set(t,n);++_1?\"& \":\"\")+t[r],t=t.join(e>2?\", \":\" \"),n.replace(rs,`{\n/* [wrapped with `+t+`] */\n`)}function ec(n){return E(n)||_t(n)||!!(Lu&&n&&n[Lu])}function Hn(n,t){var e=typeof n;return t=t??Yn,!!t&&(e==\"number\"||e!=\"symbol\"&&ps.test(n))&&n>-1&&n%1==0&&n0){if(++t>=Po)return arguments[0]}else t=0;return n.apply(u,arguments)}}function Ye(n,t){var e=-1,r=n.length,i=r-1;for(t=t===u?r:t;++e1?n[t-1]:u;return e=typeof e==\"function\"?(n.pop(),e):u,Gf(n,e)});function Ff(n){var t=f(n);return t.__chain__=!0,t}function gh(n,t){return t(n),n}function Xe(n,t){return t(n)}var ph=$n(function(n){var t=n.length,e=t?n[0]:0,r=this.__wrapped__,i=function(o){return Mr(o,n)};return t>1||this.__actions__.length||!(r instanceof D)||!Hn(e)?this.thru(i):(r=r.slice(e,+e+(t?1:0)),r.__actions__.push({func:Xe,args:[i],thisArg:u}),new mn(r,this.__chain__).thru(function(o){return t&&!o.length&&o.push(u),o}))});function dh(){return Ff(this)}function _h(){return new mn(this.value(),this.__chain__)}function vh(){this.__values__===u&&(this.__values__=Vf(this.value()));var n=this.__index__>=this.__values__.length,t=n?u:this.__values__[this.__index__++];return{done:n,value:t}}function mh(){return this}function wh(n){for(var t,e=this;e instanceof We;){var r=Of(e);r.__index__=0,r.__values__=u,t?i.__wrapped__=r:t=r;var i=r;e=e.__wrapped__}return i.__wrapped__=n,t}function Ah(){var n=this.__wrapped__;if(n instanceof D){var t=n;return this.__actions__.length&&(t=new D(this)),t=t.reverse(),t.__actions__.push({func:Xe,args:[hi],thisArg:u}),new mn(t,this.__chain__)}return this.thru(hi)}function xh(){return ku(this.__wrapped__,this.__actions__)}var yh=$e(function(n,t,e){F.call(n,e)?++n[e]:Nn(n,e,1)});function Ih(n,t,e){var r=E(n)?cu:gl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}function Th(n,t){var e=E(n)?Xn:Bu;return e(n,T(t,3))}var Lh=lf(Pf),Ch=lf(bf);function Rh(n,t){return Q(Qe(n,t),1)}function Eh(n,t){return Q(Qe(n,t),ot)}function Sh(n,t,e){return e=e===u?1:S(e),Q(Qe(n,t),e)}function Mf(n,t){var e=E(n)?_n:nt;return e(n,T(t,3))}function Nf(n,t){var e=E(n)?Ys:Wu;return e(n,T(t,3))}var Oh=$e(function(n,t,e){F.call(n,e)?n[e].push(t):Nn(n,e,[t])});function Ph(n,t,e,r){n=un(n)?n:Gt(n),e=e&&!r?S(e):0;var i=n.length;return e<0&&(e=J(i+e,0)),tr(n)?e<=i&&n.indexOf(t,e)>-1:!!i&&Lt(n,t,e)>-1}var bh=P(function(n,t,e){var r=-1,i=typeof t==\"function\",o=un(n)?h(n.length):[];return nt(n,function(s){o[++r]=i?sn(t,s,e):ne(s,t,e)}),o}),Dh=$e(function(n,t,e){Nn(n,e,t)});function Qe(n,t){var e=E(n)?$:$u;return e(n,T(t,3))}function Wh(n,t,e,r){return n==null?[]:(E(t)||(t=t==null?[]:[t]),e=r?u:e,E(e)||(e=e==null?[]:[e]),zu(n,t,e))}var Bh=$e(function(n,t,e){n[e?0:1].push(t)},function(){return[[],[]]});function Gh(n,t,e){var r=E(n)?Lr:du,i=arguments.length<3;return r(n,T(t,4),e,i,nt)}function Fh(n,t,e){var r=E(n)?Xs:du,i=arguments.length<3;return r(n,T(t,4),e,i,Wu)}function Mh(n,t){var e=E(n)?Xn:Bu;return e(n,je(T(t,3)))}function Nh(n){var t=E(n)?Ou:Pl;return t(n)}function Uh(n,t,e){(e?tn(n,t,e):t===u)?t=1:t=S(t);var r=E(n)?sl:bl;return r(n,t)}function $h(n){var t=E(n)?al:Wl;return t(n)}function Hh(n){if(n==null)return 0;if(un(n))return tr(n)?Rt(n):n.length;var t=k(n);return t==In||t==Tn?n.size:qr(n).length}function Kh(n,t,e){var r=E(n)?Cr:Bl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}var qh=P(function(n,t){if(n==null)return[];var e=t.length;return e>1&&tn(n,t[0],t[1])?t=[]:e>2&&tn(t[0],t[1],t[2])&&(t=[t[0]]),zu(n,Q(t,1),[])}),Ve=Ta||function(){return Y.Date.now()};function zh(n,t){if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){if(--n<1)return t.apply(this,arguments)}}function Uf(n,t,e){return t=e?u:t,t=n&&t==null?n.length:t,Un(n,Bn,u,u,u,u,t)}function $f(n,t){var e;if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){return--n>0&&(e=t.apply(this,arguments)),n<=1&&(t=u),e}}var pi=P(function(n,t,e){var r=pn;if(e.length){var i=Vn(e,Wt(pi));r|=On}return Un(n,r,t,e,i)}),Hf=P(function(n,t,e){var r=pn|ft;if(e.length){var i=Vn(e,Wt(Hf));r|=On}return Un(t,r,n,e,i)});function Kf(n,t,e){t=e?u:t;var r=Un(n,Sn,u,u,u,u,u,t);return r.placeholder=Kf.placeholder,r}function qf(n,t,e){t=e?u:t;var r=Un(n,At,u,u,u,u,u,t);return r.placeholder=qf.placeholder,r}function zf(n,t,e){var r,i,o,s,a,c,p=0,d=!1,_=!1,w=!0;if(typeof n!=\"function\")throw new vn(I);t=yn(t)||0,H(e)&&(d=!!e.leading,_=\"maxWait\"in e,o=_?J(yn(e.maxWait)||0,t):o,w=\"trailing\"in e?!!e.trailing:w);function y(z){var En=r,zn=i;return r=i=u,p=z,s=n.apply(zn,En),s}function L(z){return p=z,a=ue(b,t),d?y(z):s}function O(z){var En=z-c,zn=z-p,lo=t-En;return _?V(lo,o-zn):lo}function C(z){var En=z-c,zn=z-p;return c===u||En>=t||En<0||_&&zn>=o}function b(){var z=Ve();if(C(z))return W(z);a=ue(b,O(z))}function W(z){return a=u,w&&r?y(z):(r=i=u,s)}function hn(){a!==u&&nf(a),p=0,r=c=i=a=u}function en(){return a===u?s:W(Ve())}function gn(){var z=Ve(),En=C(z);if(r=arguments,i=this,c=z,En){if(a===u)return L(c);if(_)return nf(a),a=ue(b,t),y(c)}return a===u&&(a=ue(b,t)),s}return gn.cancel=hn,gn.flush=en,gn}var Zh=P(function(n,t){return Du(n,1,t)}),Jh=P(function(n,t,e){return Du(n,yn(t)||0,e)});function Yh(n){return Un(n,ur)}function ke(n,t){if(typeof n!=\"function\"||t!=null&&typeof t!=\"function\")throw new vn(I);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=e.cache;if(o.has(i))return o.get(i);var s=n.apply(this,r);return e.cache=o.set(i,s)||o,s};return e.cache=new(ke.Cache||Mn),e}ke.Cache=Mn;function je(n){if(typeof n!=\"function\")throw new vn(I);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Xh(n){return $f(2,n)}var Qh=Gl(function(n,t){t=t.length==1&&E(t[0])?$(t[0],an(T())):$(Q(t,1),an(T()));var e=t.length;return P(function(r){for(var i=-1,o=V(r.length,e);++i=t}),_t=Mu(function(){return arguments}())?Mu:function(n){return K(n)&&F.call(n,\"callee\")&&!Tu.call(n,\"callee\")},E=h.isArray,cg=uu?an(uu):wl;function un(n){return n!=null&&nr(n.length)&&!Kn(n)}function q(n){return K(n)&&un(n)}function hg(n){return n===!0||n===!1||K(n)&&nn(n)==Nt}var it=Ca||Ci,gg=fu?an(fu):Al;function pg(n){return K(n)&&n.nodeType===1&&!fe(n)}function dg(n){if(n==null)return!0;if(un(n)&&(E(n)||typeof n==\"string\"||typeof n.splice==\"function\"||it(n)||Bt(n)||_t(n)))return!n.length;var t=k(n);if(t==In||t==Tn)return!n.size;if(ie(n))return!qr(n).length;for(var e in n)if(F.call(n,e))return!1;return!0}function _g(n,t){return te(n,t)}function vg(n,t,e){e=typeof e==\"function\"?e:u;var r=e?e(n,t):u;return r===u?te(n,t,u,e):!!r}function _i(n){if(!K(n))return!1;var t=nn(n);return t==he||t==Uo||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!fe(n)}function mg(n){return typeof n==\"number\"&&Cu(n)}function Kn(n){if(!H(n))return!1;var t=nn(n);return t==ge||t==Di||t==No||t==Ho}function Jf(n){return typeof n==\"number\"&&n==S(n)}function nr(n){return typeof n==\"number\"&&n>-1&&n%1==0&&n<=Yn}function H(n){var t=typeof n;return n!=null&&(t==\"object\"||t==\"function\")}function K(n){return n!=null&&typeof n==\"object\"}var Yf=ou?an(ou):yl;function wg(n,t){return n===t||Kr(n,t,fi(t))}function Ag(n,t,e){return e=typeof e==\"function\"?e:u,Kr(n,t,fi(t),e)}function xg(n){return Xf(n)&&n!=+n}function yg(n){if(uc(n))throw new R(m);return Nu(n)}function Ig(n){return n===null}function Tg(n){return n==null}function Xf(n){return typeof n==\"number\"||K(n)&&nn(n)==$t}function fe(n){if(!K(n)||nn(n)!=Gn)return!1;var t=Re(n);if(t===null)return!0;var e=F.call(t,\"constructor\")&&t.constructor;return typeof e==\"function\"&&e instanceof e&&Ie.call(e)==Aa}var vi=su?an(su):Il;function Lg(n){return Jf(n)&&n>=-Yn&&n<=Yn}var Qf=au?an(au):Tl;function tr(n){return typeof n==\"string\"||!E(n)&&K(n)&&nn(n)==Kt}function cn(n){return typeof n==\"symbol\"||K(n)&&nn(n)==pe}var Bt=lu?an(lu):Ll;function Cg(n){return n===u}function Rg(n){return K(n)&&k(n)==qt}function Eg(n){return K(n)&&nn(n)==qo}var Sg=ze(zr),Og=ze(function(n,t){return n<=t});function Vf(n){if(!n)return[];if(un(n))return tr(n)?Ln(n):rn(n);if(Jt&&n[Jt])return sa(n[Jt]());var t=k(n),e=t==In?br:t==Tn?Ae:Gt;return e(n)}function qn(n){if(!n)return n===0?n:0;if(n=yn(n),n===ot||n===-ot){var t=n<0?-1:1;return t*Bo}return n===n?n:0}function S(n){var t=qn(n),e=t%1;return t===t?e?t-e:t:0}function kf(n){return n?ht(S(n),0,Pn):0}function yn(n){if(typeof n==\"number\")return n;if(cn(n))return le;if(H(n)){var t=typeof n.valueOf==\"function\"?n.valueOf():n;n=H(t)?t+\"\":t}if(typeof n!=\"string\")return n===0?n:+n;n=_u(n);var e=cs.test(n);return e||gs.test(n)?zs(n.slice(2),e?2:8):ls.test(n)?le:+n}function jf(n){return Dn(n,fn(n))}function Pg(n){return n?ht(S(n),-Yn,Yn):n===0?n:0}function G(n){return n==null?\"\":ln(n)}var bg=bt(function(n,t){if(ie(t)||un(t)){Dn(t,X(t),n);return}for(var e in t)F.call(t,e)&&kt(n,e,t[e])}),no=bt(function(n,t){Dn(t,fn(t),n)}),er=bt(function(n,t,e,r){Dn(t,fn(t),n,r)}),Dg=bt(function(n,t,e,r){Dn(t,X(t),n,r)}),Wg=$n(Mr);function Bg(n,t){var e=Pt(n);return t==null?e:Pu(e,t)}var Gg=P(function(n,t){n=M(n);var e=-1,r=t.length,i=r>2?t[2]:u;for(i&&tn(t[0],t[1],i)&&(r=1);++e1),o}),Dn(n,ii(n),e),r&&(e=wn(e,Jn|Oi|mt,Jl));for(var i=t.length;i--;)Qr(e,t[i]);return e});function np(n,t){return eo(n,je(T(t)))}var tp=$n(function(n,t){return n==null?{}:El(n,t)});function eo(n,t){if(n==null)return{};var e=$(ii(n),function(r){return[r]});return t=T(t),Zu(n,e,function(r,i){return t(r,i[0])})}function ep(n,t,e){t=et(t,n);var r=-1,i=t.length;for(i||(i=1,n=u);++rt){var r=n;n=t,t=r}if(e||n%1||t%1){var i=Ru();return V(n+i*(t-n+qs(\"1e-\"+((i+\"\").length-1))),t)}return Jr(n,t)}var gp=Dt(function(n,t,e){return t=t.toLowerCase(),n+(e?uo(t):t)});function uo(n){return Ai(G(n).toLowerCase())}function fo(n){return n=G(n),n&&n.replace(ds,ra).replace(Ws,\"\")}function pp(n,t,e){n=G(n),t=ln(t);var r=n.length;e=e===u?r:ht(S(e),0,r);var i=e;return e-=t.length,e>=0&&n.slice(e,i)==t}function dp(n){return n=G(n),n&&Xo.test(n)?n.replace(Gi,ia):n}function _p(n){return n=G(n),n&&ts.test(n)?n.replace(dr,\"\\\\$&\"):n}var vp=Dt(function(n,t,e){return n+(e?\"-\":\"\")+t.toLowerCase()}),mp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toLowerCase()}),wp=af(\"toLowerCase\");function Ap(n,t,e){n=G(n),t=S(t);var r=t?Rt(n):0;if(!t||r>=t)return n;var i=(t-r)/2;return qe(Pe(i),e)+n+qe(Oe(i),e)}function xp(n,t,e){n=G(n),t=S(t);var r=t?Rt(n):0;return t&&r>>0,e?(n=G(n),n&&(typeof t==\"string\"||t!=null&&!vi(t))&&(t=ln(t),!t&&Ct(n))?rt(Ln(n),0,e):n.split(t,e)):[]}var Ep=Dt(function(n,t,e){return n+(e?\" \":\"\")+Ai(t)});function Sp(n,t,e){return n=G(n),e=e==null?0:ht(S(e),0,n.length),t=ln(t),n.slice(e,e+t.length)==t}function Op(n,t,e){var r=f.templateSettings;e&&tn(n,t,e)&&(t=u),n=G(n),t=er({},t,r,_f);var i=er({},t.imports,r.imports,_f),o=X(i),s=Pr(i,o),a,c,p=0,d=t.interpolate||de,_=\"__p += '\",w=Dr((t.escape||de).source+\"|\"+d.source+\"|\"+(d===Fi?as:de).source+\"|\"+(t.evaluate||de).source+\"|$\",\"g\"),y=\"//# sourceURL=\"+(F.call(t,\"sourceURL\")?(t.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++Ns+\"]\")+`\n`;n.replace(w,function(C,b,W,hn,en,gn){return W||(W=hn),_+=n.slice(p,gn).replace(_s,ua),b&&(a=!0,_+=`' +\n__e(`+b+`) +\n'`),en&&(c=!0,_+=`';\n`+en+`;\n__p += '`),W&&(_+=`' +\n((__t = (`+W+`)) == null ? '' : __t) +\n'`),p=gn+C.length,C}),_+=`';\n`;var L=F.call(t,\"variable\")&&t.variable;if(!L)_=`with (obj) {\n`+_+`\n}\n`;else if(os.test(L))throw new R(j);_=(c?_.replace(zo,\"\"):_).replace(Zo,\"$1\").replace(Jo,\"$1;\"),_=\"function(\"+(L||\"obj\")+`) {\n`+(L?\"\":`obj || (obj = {});\n`)+\"var __t, __p = ''\"+(a?\", __e = _.escape\":\"\")+(c?`, __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n`:`;\n`)+_+`return __p\n}`;var O=so(function(){return B(o,y+\"return \"+_).apply(u,s)});if(O.source=_,_i(O))throw O;return O}function Pp(n){return G(n).toLowerCase()}function bp(n){return G(n).toUpperCase()}function Dp(n,t,e){if(n=G(n),n&&(e||t===u))return _u(n);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=Ln(t),o=vu(r,i),s=mu(r,i)+1;return rt(r,o,s).join(\"\")}function Wp(n,t,e){if(n=G(n),n&&(e||t===u))return n.slice(0,Au(n)+1);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=mu(r,Ln(t))+1;return rt(r,0,i).join(\"\")}function Bp(n,t,e){if(n=G(n),n&&(e||t===u))return n.replace(_r,\"\");if(!n||!(t=ln(t)))return n;var r=Ln(n),i=vu(r,Ln(t));return rt(r,i).join(\"\")}function Gp(n,t){var e=So,r=Oo;if(H(t)){var i=\"separator\"in t?t.separator:i;e=\"length\"in t?S(t.length):e,r=\"omission\"in t?ln(t.omission):r}n=G(n);var o=n.length;if(Ct(n)){var s=Ln(n);o=s.length}if(e>=o)return n;var a=e-Rt(r);if(a<1)return r;var c=s?rt(s,0,a).join(\"\"):n.slice(0,a);if(i===u)return c+r;if(s&&(a+=c.length-a),vi(i)){if(n.slice(a).search(i)){var p,d=c;for(i.global||(i=Dr(i.source,G(Mi.exec(i))+\"g\")),i.lastIndex=0;p=i.exec(d);)var _=p.index;c=c.slice(0,_===u?a:_)}}else if(n.indexOf(ln(i),a)!=a){var w=c.lastIndexOf(i);w>-1&&(c=c.slice(0,w))}return c+r}function Fp(n){return n=G(n),n&&Yo.test(n)?n.replace(Bi,ha):n}var Mp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toUpperCase()}),Ai=af(\"toUpperCase\");function oo(n,t,e){return n=G(n),t=e?u:t,t===u?oa(n)?da(n):ks(n):n.match(t)||[]}var so=P(function(n,t){try{return sn(n,u,t)}catch(e){return _i(e)?e:new R(e)}}),Np=$n(function(n,t){return _n(t,function(e){e=Wn(e),Nn(n,e,pi(n[e],n))}),n});function Up(n){var t=n==null?0:n.length,e=T();return n=t?$(n,function(r){if(typeof r[1]!=\"function\")throw new vn(I);return[e(r[0]),r[1]]}):[],P(function(r){for(var i=-1;++iYn)return[];var e=Pn,r=V(n,Pn);t=T(t),n-=Pn;for(var i=Or(r,t);++e0||t<0)?new D(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==u&&(t=S(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},D.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},D.prototype.toArray=function(){return this.take(Pn)},bn(D.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=f[r?\"take\"+(t==\"last\"?\"Right\":\"\"):t],o=r||/^find/.test(t);i&&(f.prototype[t]=function(){var s=this.__wrapped__,a=r?[1]:arguments,c=s instanceof D,p=a[0],d=c||E(s),_=function(b){var W=i.apply(f,Qn([b],a));return r&&w?W[0]:W};d&&e&&typeof p==\"function\"&&p.length!=1&&(c=d=!1);var w=this.__chain__,y=!!this.__actions__.length,L=o&&!w,O=c&&!y;if(!o&&d){s=O?s:new D(this);var C=n.apply(s,a);return C.__actions__.push({func:Xe,args:[_],thisArg:u}),new mn(C,w)}return L&&O?n.apply(this,a):(C=this.thru(_),L?r?C.value()[0]:C.value():C)})}),_n([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(n){var t=xe[n],e=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",r=/^(?:pop|shift)$/.test(n);f.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(E(o)?o:[],i)}return this[e](function(s){return t.apply(E(s)?s:[],i)})}}),bn(D.prototype,function(n,t){var e=f[t];if(e){var r=e.name+\"\";F.call(Ot,r)||(Ot[r]=[]),Ot[r].push({name:t,func:e})}}),Ot[He(u,ft).name]=[{name:\"wrapper\",func:u}],D.prototype.clone=Fa,D.prototype.reverse=Ma,D.prototype.value=Na,f.prototype.at=ph,f.prototype.chain=dh,f.prototype.commit=_h,f.prototype.next=vh,f.prototype.plant=wh,f.prototype.reverse=Ah,f.prototype.toJSON=f.prototype.valueOf=f.prototype.value=xh,f.prototype.first=f.prototype.head,Jt&&(f.prototype[Jt]=mh),f},kn=_a();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?(Y._=kn,define(function(){return kn})):st?((st.exports=kn)._=kn,yr._=kn):Y._=kn}).call(Ft)});var jd={};Od(jd,{albIpMonitor:()=>Ao,albTargetRecordMonitor:()=>Ro});module.exports=Pd(jd);var go=ho(require(\"dns\")),po=require(\"@aws-sdk/lib-dynamodb\"),_o=require(\"@aws-sdk/client-dynamodb\"),vo=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),Ri=process.env.LOOKUP_TABLE??\"\",mo=po.DynamoDBDocument.from(new _o.DynamoDB),wo=new vo.ElasticLoadBalancingV2({logger:console}),bd=async u=>{console.log(`Scanning route lookup table ${Ri}`);let v={TableName:u},x=[],m;do m=await mo.scan(v),m.Items?.forEach(I=>x.push(I)),v.ExclusiveStartKey=m.LastEvaluatedKey;while(typeof m.LastEvaluatedKey<\"u\");return x},Dd=async(u,v,x)=>{let m=v.map(j=>({Id:j,Port:x,AvailabilityZone:\"all\"})),I={TargetGroupArn:u,Targets:m};return wo.registerTargets(I)},Wd=async(u,v)=>{console.log(`Deregistering IP addresses ${JSON.stringify(v)} from target group ${u}`);let x=v.map(I=>({Id:I})),m={TargetGroupArn:u,Targets:x};return wo.deregisterTargets(m)},Bd=async u=>new Promise((v,x)=>{go.lookup(u,{all:!0,family:4},(m,I)=>{m?x(m):v(I.map(j=>j.address).sort())})}),Gd=(u,v)=>{let x=u.indexOf(v);return x>-1&&u.splice(x,1),u},Fd=async u=>{let v={TableName:Ri,Item:u};return mo.put(v)},Ao=async(u,v)=>{let x=await bd(Ri)??[];for(let m of x)try{m.dnsLookupIps=[];try{m.dnsLookupIps=await Bd(m.targetAlbDnsName)}catch(I){console.log(I)}m.ipAddList=m.dnsLookupIps?.filter(I=>!m.metadata?.targetGroupIpAddresses?.includes(I))??[],m.ipRemoveList=m.metadata?.targetGroupIpAddresses?.filter(I=>!m.dnsLookupIps?.includes(I))??[],m.ipAddList?.length>0?(console.log(`Registering new ips ${JSON.stringify(m.ipAddList)} to target ${m.metadata.targetGroupArn} with port ${m.targetGroupDestinationPort}`),await Dd(m.metadata.targetGroupArn,m.ipAddList,m.targetGroupDestinationPort),m.metadata.targetGroupIpAddresses.push(...m.ipAddList)):console.log(\"No new Ip addresses to register\"),m.ipRemoveList?.length>0?(console.log(`Deregistering old ip addresses ${JSON.stringify(m.ipRemoveList)} from target group targetGroupRecord.metadata.targetGroupArn`),await Wd(m.metadata.targetGroupArn,m.ipRemoveList),m.ipRemoveList?.forEach(I=>{console.log(m.metadata.targetGroupIpAddresses,I),m.metadata.targetGroupIpAddresses=Gd(m.metadata.targetGroupIpAddresses,I)})):console.log(\"No old ip addresses to deregister\"),delete m.ipAddList,delete m.ipRemoveList,delete m.dnsLookupIps,console.log(\"Writing record to DDB table \",JSON.stringify(m,null,4)),await Fd(m)}catch(I){console.log(\"There was a problem updating the record \",JSON.stringify(m,null,4)),console.log(I)}return\"Done\"};var yo=require(\"@aws-sdk/lib-dynamodb\"),Io=require(\"@aws-sdk/client-dynamodb\"),Ei=require(\"@aws-sdk/util-dynamodb\"),ir=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),vt=ho(xo()),Zn=new ir.ElasticLoadBalancingV2,Md=yo.DynamoDBDocument.from(new Io.DynamoDB),Nd=process.env.LOOKUP_TABLE||\"\",Ud=u=>new Promise(v=>{setTimeout(v,u)}),$d=async(u,v,x,m)=>{let I={Name:u,Port:v,Protocol:m,VpcId:x,TargetType:ir.TargetTypeEnum.IP};return Zn.createTargetGroup(I)},Hd=async u=>{let v={Attributes:[{Key:\"stickiness.enabled\",Value:\"true\"}],TargetGroupArn:u};return Zn.modifyTargetGroupAttributes(v)},To=async(u,v)=>{let x={ListenerArn:v};return((await Zn.describeRules(x)).Rules?.filter(j=>j.Priority===u.toString())||[]).length===0},Lo=async u=>{try{let v={ListenerArns:[u]};return await Zn.describeListeners(v),Promise.resolve(!0)}catch(v){return console.log(v),Promise.resolve(!1)}},Kd=async(u,v,x,m,I)=>{console.log(\"trying to create listener rule\"),console.log(x,v,u,m,I);let j={Actions:[{TargetGroupArn:m,Type:\"forward\"}],ListenerArn:u,Priority:I,Conditions:[]};if(v?.length>0){let ut={Field:\"path-pattern\",Values:v};j.Conditions?.push(ut)}if(x?.length>0){let ut={Field:\"host-header\",Values:x};j.Conditions?.push(ut)}return Zn.createRule(j)},qd=async(u,v,x,m)=>{let I={Actions:[{TargetGroupArn:m,Type:\"forward\"}],RuleArn:u,Conditions:[]};if(v?.length>0){let j={Field:\"path-pattern\",Values:v};I?.Conditions?.push(j)}if(x?.length>0){let j={Field:\"host-header\",Values:x};I?.Conditions?.push(j)}return Zn.modifyRule(I)},zd=async u=>{let v={RuleArn:u};return Zn.deleteRule(v)},Zd=async u=>{let v={TargetGroupArn:u};return Zn.deleteTargetGroup(v)},Jd=async(u,v)=>{let x={RulePriorities:[{Priority:v,RuleArn:u}]};return Zn.setRulePriorities(x)},Yd=async(u,v)=>{let x={TableName:u,Item:v};return Md.put(x)},Xd=(u,v)=>{let x={vpcId:u.vpcId,destinationPort:u.targetGroupDestinationPort,protocol:u.targetGroupProtocol},m={vpcId:v.vpcId,destinationPort:v.targetGroupDestinationPort,protocol:v.targetGroupProtocol};return!vt.isEqual(x,m)},Qd=(u,v)=>{let x={sourceListenerArn:u.rule.sourceListenerArn,priority:u.rule.condition.priority,paths:u.rule.condition.paths?.sort(),hosts:u.rule.condition.hosts?.sort()},m={sourceListenerArn:v.rule.sourceListenerArn,priority:v.rule.condition.priority,paths:v.rule.condition.paths?.sort(),hosts:v.rule.condition.hosts?.sort()};return!vt.isEqual(x,m)},Vd=(u,v)=>{let x=u.rule.condition.priority,m=v.rule.condition.priority;return x!==m},Si=async u=>{console.log(\"Record creation detected.\");try{if(!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);if(console.log(\"Checking if priority is valid\"),!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match. Exiting`);let x=(await $d(u.id,u.targetGroupDestinationPort,u.vpcId,u.targetGroupProtocol))?.TargetGroups?.[0].TargetGroupArn??\"\";await Hd(x);let I=(await Kd(u.rule.sourceListenerArn,u.rule.condition.paths,u.rule.condition.hosts,x,u.rule.condition.priority))?.Rules?.[0].RuleArn??\"\";if(!x||!I)throw new Error(`There was an error getting the target group arn or listener rule arn. \nTarget Group Arn: ${x}\nRule Arn: ${I}`);return u.metadata={targetGroupArn:x,ruleArn:I,targetGroupIpAddresses:[]},await Yd(Nd,u),console.log(\"Added metadata to table\"),u}catch(v){throw console.log(\"There was a problem creating resources for the following record\",JSON.stringify(u,null,4)),v}},Co=async u=>{try{console.log(`Deleting listener rule and target group for ${u.id}`),await zd(u.metadata.ruleArn),console.log(\"Deleted listener rule.\")}catch(v){console.log(v),console.log(\"Could not delete listener rule for record. Continuing...\",JSON.stringify(u,null,4))}try{await Zd(u.metadata.targetGroupArn),console.log(\"Deleted target group\");return}catch(v){console.log(\"Could not delete target group for record\",JSON.stringify(u,null,4)),console.log(v)}},kd=async(u,v)=>{try{if(console.log(`The record with id ${u.id} was updated. Performing comparison.`),!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);let x=vt.cloneDeep(u),m=vt.cloneDeep(v);if(delete x.metadata,delete m.metadata,vt.isEqual(x,m)){console.log(`Update Record handler found no changes made for record with Id ${u.id}`);return}if(!v.metadata){console.log(\"No previous metadata detected for record. Creating metadata based off of new entry\"),await Si(u);return}if(Qd(v,u)&&(console.log(`Detected a listener rule change. Modifying rule ${u.metadata.ruleArn}`),await qd(u.metadata.ruleArn,u.rule.condition.paths,u.rule.condition.hosts,u.metadata.targetGroupArn)),Vd(v,u)){if(!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match.`);await Jd(u.metadata.ruleArn,u.rule.condition.priority)}Xd(v,u)&&(console.log(`Detected a target group change. deleting target group ${u.metadata.targetGroupArn} and creating a new target group`),await Co(u),await Ud(1e4),await Si(u))}catch(x){throw console.log(\"There was a problem updating a target group or listener rule for the records:\"),console.log(\"Old Record: \",JSON.stringify(v,null,4)),console.log(\"New Record: \",JSON.stringify(u,null,4)),x}},Ro=async(u,v)=>{console.log(JSON.stringify(u,null,2));let x=u.Records.map(m=>(m.dynamodb.OldImage&&(m.dynamodb.OldImage=(0,Ei.unmarshall)(m.dynamodb.OldImage)),m.dynamodb.NewImage&&(m.dynamodb.NewImage=(0,Ei.unmarshall)(m.dynamodb.NewImage)),m));for(let m of x)m.eventName===\"INSERT\"&&await Si(m.dynamodb.NewImage),m.eventName===\"MODIFY\"&&await kd(m.dynamodb.NewImage,m.dynamodb.OldImage),m.eventName===\"REMOVE\"&&await Co(m.dynamodb.OldImage)};0&&(module.exports={albIpMonitor,albTargetRecordMonitor});\n/*! Bundled license information:\n\nlodash/lodash.js:\n (**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n *)\n*/\n" + "ZipFile": "\"use strict\";var Td=Object.create;var ir=Object.defineProperty;var Ld=Object.getOwnPropertyDescriptor;var Cd=Object.getOwnPropertyNames;var Ed=Object.getPrototypeOf,Rd=Object.prototype.hasOwnProperty;var Sd=(u,v)=>()=>(v||u((v={exports:{}}).exports,v),v.exports),Od=(u,v)=>{for(var y in v)ir(u,y,{get:v[y],enumerable:!0})},co=(u,v,y,m)=>{if(v&&typeof v==\"object\"||typeof v==\"function\")for(let I of Cd(v))!Rd.call(u,I)&&I!==y&&ir(u,I,{get:()=>v[I],enumerable:!(m=Ld(v,I))||m.enumerable});return u};var ho=(u,v,y)=>(y=u!=null?Td(Ed(u)):{},co(v||!u||!u.__esModule?ir(y,\"default\",{value:u,enumerable:!0}):y,u)),Pd=u=>co(ir({},\"__esModule\",{value:!0}),u);var yo=Sd((Mt,se)=>{(function(){var u,v=\"4.17.21\",y=200,m=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",I=\"Expected a function\",Q=\"Invalid `variable` option passed into `_.template`\",ut=\"__lodash_hash_undefined__\",Ro=500,ae=\"__lodash_placeholder__\",Jn=1,Oi=2,mt=4,wt=1,le=2,pn=1,ft=2,Pi=4,Sn=8,At=16,On=32,yt=64,Bn=128,Nt=256,ur=512,So=30,Oo=\"...\",Po=800,bo=16,bi=1,Do=2,Go=3,ot=1/0,Yn=9007199254740991,Wo=17976931348623157e292,ce=0/0,Pn=4294967295,Bo=Pn-1,Mo=Pn>>>1,Fo=[[\"ary\",Bn],[\"bind\",pn],[\"bindKey\",ft],[\"curry\",Sn],[\"curryRight\",At],[\"flip\",ur],[\"partial\",On],[\"partialRight\",yt],[\"rearg\",Nt]],xt=\"[object Arguments]\",he=\"[object Array]\",No=\"[object AsyncFunction]\",Ut=\"[object Boolean]\",$t=\"[object Date]\",Uo=\"[object DOMException]\",ge=\"[object Error]\",pe=\"[object Function]\",Di=\"[object GeneratorFunction]\",In=\"[object Map]\",Ht=\"[object Number]\",$o=\"[object Null]\",Mn=\"[object Object]\",Gi=\"[object Promise]\",Ho=\"[object Proxy]\",Kt=\"[object RegExp]\",Tn=\"[object Set]\",qt=\"[object String]\",de=\"[object Symbol]\",Ko=\"[object Undefined]\",zt=\"[object WeakMap]\",qo=\"[object WeakSet]\",Zt=\"[object ArrayBuffer]\",It=\"[object DataView]\",fr=\"[object Float32Array]\",or=\"[object Float64Array]\",sr=\"[object Int8Array]\",ar=\"[object Int16Array]\",lr=\"[object Int32Array]\",cr=\"[object Uint8Array]\",hr=\"[object Uint8ClampedArray]\",gr=\"[object Uint16Array]\",pr=\"[object Uint32Array]\",zo=/\\b__p \\+= '';/g,Zo=/\\b(__p \\+=) '' \\+/g,Jo=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,Wi=/&(?:amp|lt|gt|quot|#39);/g,Bi=/[&<>\"']/g,Yo=RegExp(Wi.source),Xo=RegExp(Bi.source),Qo=/<%-([\\s\\S]+?)%>/g,Vo=/<%([\\s\\S]+?)%>/g,Mi=/<%=([\\s\\S]+?)%>/g,ko=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,jo=/^\\w*$/,ns=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,dr=/[\\\\^$.*+?()[\\]{}|]/g,ts=RegExp(dr.source),_r=/^\\s+/,es=/\\s/,rs=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,is=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,us=/,? & /,fs=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,os=/[()=,{}\\[\\]\\/\\s]/,ss=/\\\\(\\\\)?/g,as=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Fi=/\\w*$/,ls=/^[-+]0x[0-9a-f]+$/i,cs=/^0b[01]+$/i,hs=/^\\[object .+?Constructor\\]$/,gs=/^0o[0-7]+$/i,ps=/^(?:0|[1-9]\\d*)$/,ds=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,_e=/($^)/,_s=/['\\n\\r\\u2028\\u2029\\\\]/g,ve=\"\\\\ud800-\\\\udfff\",vs=\"\\\\u0300-\\\\u036f\",ms=\"\\\\ufe20-\\\\ufe2f\",ws=\"\\\\u20d0-\\\\u20ff\",Ni=vs+ms+ws,Ui=\"\\\\u2700-\\\\u27bf\",$i=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",As=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",ys=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",xs=\"\\\\u2000-\\\\u206f\",Is=\" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",Hi=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",Ki=\"\\\\ufe0e\\\\ufe0f\",qi=As+ys+xs+Is,vr=\"['\\u2019]\",Ts=\"[\"+ve+\"]\",zi=\"[\"+qi+\"]\",me=\"[\"+Ni+\"]\",Zi=\"\\\\d+\",Ls=\"[\"+Ui+\"]\",Ji=\"[\"+$i+\"]\",Yi=\"[^\"+ve+qi+Zi+Ui+$i+Hi+\"]\",mr=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",Cs=\"(?:\"+me+\"|\"+mr+\")\",Xi=\"[^\"+ve+\"]\",wr=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Ar=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",Tt=\"[\"+Hi+\"]\",Qi=\"\\\\u200d\",Vi=\"(?:\"+Ji+\"|\"+Yi+\")\",Es=\"(?:\"+Tt+\"|\"+Yi+\")\",ki=\"(?:\"+vr+\"(?:d|ll|m|re|s|t|ve))?\",ji=\"(?:\"+vr+\"(?:D|LL|M|RE|S|T|VE))?\",nu=Cs+\"?\",tu=\"[\"+Ki+\"]?\",Rs=\"(?:\"+Qi+\"(?:\"+[Xi,wr,Ar].join(\"|\")+\")\"+tu+nu+\")*\",Ss=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",Os=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",eu=tu+nu+Rs,Ps=\"(?:\"+[Ls,wr,Ar].join(\"|\")+\")\"+eu,bs=\"(?:\"+[Xi+me+\"?\",me,wr,Ar,Ts].join(\"|\")+\")\",Ds=RegExp(vr,\"g\"),Gs=RegExp(me,\"g\"),yr=RegExp(mr+\"(?=\"+mr+\")|\"+bs+eu,\"g\"),Ws=RegExp([Tt+\"?\"+Ji+\"+\"+ki+\"(?=\"+[zi,Tt,\"$\"].join(\"|\")+\")\",Es+\"+\"+ji+\"(?=\"+[zi,Tt+Vi,\"$\"].join(\"|\")+\")\",Tt+\"?\"+Vi+\"+\"+ki,Tt+\"+\"+ji,Os,Ss,Zi,Ps].join(\"|\"),\"g\"),Bs=RegExp(\"[\"+Qi+ve+Ni+Ki+\"]\"),Ms=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Fs=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Ns=-1,U={};U[fr]=U[or]=U[sr]=U[ar]=U[lr]=U[cr]=U[hr]=U[gr]=U[pr]=!0,U[xt]=U[he]=U[Zt]=U[Ut]=U[It]=U[$t]=U[ge]=U[pe]=U[In]=U[Ht]=U[Mn]=U[Kt]=U[Tn]=U[qt]=U[zt]=!1;var N={};N[xt]=N[he]=N[Zt]=N[It]=N[Ut]=N[$t]=N[fr]=N[or]=N[sr]=N[ar]=N[lr]=N[In]=N[Ht]=N[Mn]=N[Kt]=N[Tn]=N[qt]=N[de]=N[cr]=N[hr]=N[gr]=N[pr]=!0,N[ge]=N[pe]=N[zt]=!1;var Us={\\u00C0:\"A\",\\u00C1:\"A\",\\u00C2:\"A\",\\u00C3:\"A\",\\u00C4:\"A\",\\u00C5:\"A\",\\u00E0:\"a\",\\u00E1:\"a\",\\u00E2:\"a\",\\u00E3:\"a\",\\u00E4:\"a\",\\u00E5:\"a\",\\u00C7:\"C\",\\u00E7:\"c\",\\u00D0:\"D\",\\u00F0:\"d\",\\u00C8:\"E\",\\u00C9:\"E\",\\u00CA:\"E\",\\u00CB:\"E\",\\u00E8:\"e\",\\u00E9:\"e\",\\u00EA:\"e\",\\u00EB:\"e\",\\u00CC:\"I\",\\u00CD:\"I\",\\u00CE:\"I\",\\u00CF:\"I\",\\u00EC:\"i\",\\u00ED:\"i\",\\u00EE:\"i\",\\u00EF:\"i\",\\u00D1:\"N\",\\u00F1:\"n\",\\u00D2:\"O\",\\u00D3:\"O\",\\u00D4:\"O\",\\u00D5:\"O\",\\u00D6:\"O\",\\u00D8:\"O\",\\u00F2:\"o\",\\u00F3:\"o\",\\u00F4:\"o\",\\u00F5:\"o\",\\u00F6:\"o\",\\u00F8:\"o\",\\u00D9:\"U\",\\u00DA:\"U\",\\u00DB:\"U\",\\u00DC:\"U\",\\u00F9:\"u\",\\u00FA:\"u\",\\u00FB:\"u\",\\u00FC:\"u\",\\u00DD:\"Y\",\\u00FD:\"y\",\\u00FF:\"y\",\\u00C6:\"Ae\",\\u00E6:\"ae\",\\u00DE:\"Th\",\\u00FE:\"th\",\\u00DF:\"ss\",\\u0100:\"A\",\\u0102:\"A\",\\u0104:\"A\",\\u0101:\"a\",\\u0103:\"a\",\\u0105:\"a\",\\u0106:\"C\",\\u0108:\"C\",\\u010A:\"C\",\\u010C:\"C\",\\u0107:\"c\",\\u0109:\"c\",\\u010B:\"c\",\\u010D:\"c\",\\u010E:\"D\",\\u0110:\"D\",\\u010F:\"d\",\\u0111:\"d\",\\u0112:\"E\",\\u0114:\"E\",\\u0116:\"E\",\\u0118:\"E\",\\u011A:\"E\",\\u0113:\"e\",\\u0115:\"e\",\\u0117:\"e\",\\u0119:\"e\",\\u011B:\"e\",\\u011C:\"G\",\\u011E:\"G\",\\u0120:\"G\",\\u0122:\"G\",\\u011D:\"g\",\\u011F:\"g\",\\u0121:\"g\",\\u0123:\"g\",\\u0124:\"H\",\\u0126:\"H\",\\u0125:\"h\",\\u0127:\"h\",\\u0128:\"I\",\\u012A:\"I\",\\u012C:\"I\",\\u012E:\"I\",\\u0130:\"I\",\\u0129:\"i\",\\u012B:\"i\",\\u012D:\"i\",\\u012F:\"i\",\\u0131:\"i\",\\u0134:\"J\",\\u0135:\"j\",\\u0136:\"K\",\\u0137:\"k\",\\u0138:\"k\",\\u0139:\"L\",\\u013B:\"L\",\\u013D:\"L\",\\u013F:\"L\",\\u0141:\"L\",\\u013A:\"l\",\\u013C:\"l\",\\u013E:\"l\",\\u0140:\"l\",\\u0142:\"l\",\\u0143:\"N\",\\u0145:\"N\",\\u0147:\"N\",\\u014A:\"N\",\\u0144:\"n\",\\u0146:\"n\",\\u0148:\"n\",\\u014B:\"n\",\\u014C:\"O\",\\u014E:\"O\",\\u0150:\"O\",\\u014D:\"o\",\\u014F:\"o\",\\u0151:\"o\",\\u0154:\"R\",\\u0156:\"R\",\\u0158:\"R\",\\u0155:\"r\",\\u0157:\"r\",\\u0159:\"r\",\\u015A:\"S\",\\u015C:\"S\",\\u015E:\"S\",\\u0160:\"S\",\\u015B:\"s\",\\u015D:\"s\",\\u015F:\"s\",\\u0161:\"s\",\\u0162:\"T\",\\u0164:\"T\",\\u0166:\"T\",\\u0163:\"t\",\\u0165:\"t\",\\u0167:\"t\",\\u0168:\"U\",\\u016A:\"U\",\\u016C:\"U\",\\u016E:\"U\",\\u0170:\"U\",\\u0172:\"U\",\\u0169:\"u\",\\u016B:\"u\",\\u016D:\"u\",\\u016F:\"u\",\\u0171:\"u\",\\u0173:\"u\",\\u0174:\"W\",\\u0175:\"w\",\\u0176:\"Y\",\\u0177:\"y\",\\u0178:\"Y\",\\u0179:\"Z\",\\u017B:\"Z\",\\u017D:\"Z\",\\u017A:\"z\",\\u017C:\"z\",\\u017E:\"z\",\\u0132:\"IJ\",\\u0133:\"ij\",\\u0152:\"Oe\",\\u0153:\"oe\",\\u0149:\"'n\",\\u017F:\"s\"},$s={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},Hs={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"},Ks={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},qs=parseFloat,zs=parseInt,ru=typeof global==\"object\"&&global&&global.Object===Object&&global,Zs=typeof self==\"object\"&&self&&self.Object===Object&&self,Y=ru||Zs||Function(\"return this\")(),xr=typeof Mt==\"object\"&&Mt&&!Mt.nodeType&&Mt,st=xr&&typeof se==\"object\"&&se&&!se.nodeType&&se,iu=st&&st.exports===xr,Ir=iu&&ru.process,dn=function(){try{var l=st&&st.require&&st.require(\"util\").types;return l||Ir&&Ir.binding&&Ir.binding(\"util\")}catch{}}(),uu=dn&&dn.isArrayBuffer,fu=dn&&dn.isDate,ou=dn&&dn.isMap,su=dn&&dn.isRegExp,au=dn&&dn.isSet,lu=dn&&dn.isTypedArray;function sn(l,g,h){switch(h.length){case 0:return l.call(g);case 1:return l.call(g,h[0]);case 2:return l.call(g,h[0],h[1]);case 3:return l.call(g,h[0],h[1],h[2])}return l.apply(g,h)}function Js(l,g,h,A){for(var E=-1,W=l==null?0:l.length;++E-1}function Tr(l,g,h){for(var A=-1,E=l==null?0:l.length;++A-1;);return h}function mu(l,g){for(var h=l.length;h--&&Lt(g,l[h],0)>-1;);return h}function ea(l,g){for(var h=l.length,A=0;h--;)l[h]===g&&++A;return A}var ra=Rr(Us),ia=Rr($s);function ua(l){return\"\\\\\"+Ks[l]}function fa(l,g){return l==null?u:l[g]}function Ct(l){return Bs.test(l)}function oa(l){return Ms.test(l)}function sa(l){for(var g,h=[];!(g=l.next()).done;)h.push(g.value);return h}function br(l){var g=-1,h=Array(l.size);return l.forEach(function(A,E){h[++g]=[E,A]}),h}function wu(l,g){return function(h){return l(g(h))}}function Vn(l,g){for(var h=-1,A=l.length,E=0,W=[];++h-1}function Xa(n,t){var e=this.__data__,r=Be(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}Fn.prototype.clear=za,Fn.prototype.delete=Za,Fn.prototype.get=Ja,Fn.prototype.has=Ya,Fn.prototype.set=Xa;function Nn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t=t?n:t)),n}function wn(n,t,e,r,i,o){var s,a=t&Jn,c=t&Oi,p=t&mt;if(e&&(s=i?e(n,r,i,o):e(n)),s!==u)return s;if(!H(n))return n;var d=R(n);if(d){if(s=jl(n),!a)return rn(n,s)}else{var _=j(n),w=_==pe||_==Di;if(it(n))return tf(n,a);if(_==Mn||_==xt||w&&!i){if(s=c||w?{}:yf(n),!a)return c?Hl(n,cl(s,n)):$l(n,Pu(s,n))}else{if(!N[_])return i?n:{};s=nc(n,_,a)}}o||(o=new Cn);var x=o.get(n);if(x)return x;o.set(n,s),Qf(n)?n.forEach(function(C){s.add(wn(C,t,e,C,n,o))}):Yf(n)&&n.forEach(function(C,b){s.set(b,wn(C,t,e,b,n,o))});var L=p?c?ii:ri:c?fn:X,O=d?u:L(n);return _n(O||n,function(C,b){O&&(b=C,C=n[b]),jt(s,b,wn(C,t,e,b,n,o))}),s}function hl(n){var t=X(n);return function(e){return bu(e,n,t)}}function bu(n,t,e){var r=e.length;if(n==null)return!r;for(n=F(n);r--;){var i=e[r],o=t[i],s=n[i];if(s===u&&!(i in n)||!o(s))return!1}return!0}function Du(n,t,e){if(typeof n!=\"function\")throw new vn(I);return fe(function(){n.apply(u,e)},t)}function ne(n,t,e,r){var i=-1,o=we,s=!0,a=n.length,c=[],p=t.length;if(!a)return c;e&&(t=$(t,an(e))),r?(o=Tr,s=!1):t.length>=y&&(o=Jt,s=!1,t=new ct(t));n:for(;++ii?0:i+e),r=r===u||r>i?i:S(r),r<0&&(r+=i),r=e>r?0:kf(r);e0&&e(a)?t>1?V(a,t-1,e,r,i):Qn(i,a):r||(i[i.length]=a)}return i}var Nr=sf(),Bu=sf(!0);function bn(n,t){return n&&Nr(n,t,X)}function Ur(n,t){return n&&Bu(n,t,X)}function Fe(n,t){return Xn(t,function(e){return qn(n[e])})}function gt(n,t){t=et(t,n);for(var e=0,r=t.length;n!=null&&et}function dl(n,t){return n!=null&&M.call(n,t)}function _l(n,t){return n!=null&&t in F(n)}function vl(n,t,e){return n>=k(t,e)&&n=120&&d.length>=120)?new ct(s&&d):u}d=n[0];var _=-1,w=a[0];n:for(;++_-1;)a!==n&&Se.call(a,c,1),Se.call(n,c,1);return n}function Ju(n,t){for(var e=n?t.length:0,r=e-1;e--;){var i=t[e];if(e==r||i!==o){var o=i;Kn(i)?Se.call(n,i,1):Qr(n,i)}}return n}function Jr(n,t){return n+be(Eu()*(t-n+1))}function Ol(n,t,e,r){for(var i=-1,o=J(Pe((t-n)/(e||1)),0),s=h(o);o--;)s[r?o:++i]=n,n+=e;return s}function Yr(n,t){var e=\"\";if(!n||t<1||t>Yn)return e;do t%2&&(e+=n),t=be(t/2),t&&(n+=n);while(t);return e}function P(n,t){return ci(Tf(n,t,on),n+\"\")}function Pl(n){return Ou(Bt(n))}function bl(n,t){var e=Bt(n);return Xe(e,ht(t,0,e.length))}function re(n,t,e,r){if(!H(n))return n;t=et(t,n);for(var i=-1,o=t.length,s=o-1,a=n;a!=null&&++ii?0:i+t),e=e>i?i:e,e<0&&(e+=i),i=t>e?0:e-t>>>0,t>>>=0;for(var o=h(i);++r>>1,s=n[o];s!==null&&!cn(s)&&(e?s<=t:s=y){var p=t?null:Zl(n);if(p)return ye(p);s=!1,i=Jt,c=new ct}else c=t?[]:a;n:for(;++r=r?n:An(n,t,e)}var nf=Ia||function(n){return Y.clearTimeout(n)};function tf(n,t){if(t)return n.slice();var e=n.length,r=xu?xu(e):new n.constructor(e);return n.copy(r),r}function ni(n){var t=new n.constructor(n.byteLength);return new Ee(t).set(new Ee(n)),t}function Ml(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}function Fl(n){var t=new n.constructor(n.source,Fi.exec(n));return t.lastIndex=n.lastIndex,t}function Nl(n){return kt?F(kt.call(n)):{}}function ef(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}function rf(n,t){if(n!==t){var e=n!==u,r=n===null,i=n===n,o=cn(n),s=t!==u,a=t===null,c=t===t,p=cn(t);if(!a&&!p&&!o&&n>t||o&&s&&c&&!a&&!p||r&&s&&c||!e&&c||!i)return 1;if(!r&&!o&&!p&&n=a)return c;var p=e[r];return c*(p==\"desc\"?-1:1)}}return n.index-t.index}function uf(n,t,e,r){for(var i=-1,o=n.length,s=e.length,a=-1,c=t.length,p=J(o-s,0),d=h(c+p),_=!r;++a1?e[i-1]:u,s=i>2?e[2]:u;for(o=n.length>3&&typeof o==\"function\"?(i--,o):u,s&&tn(e[0],e[1],s)&&(o=i<3?u:o,i=1),t=F(t);++r-1?i[o?t[s]:s]:u}}function cf(n){return Hn(function(t){var e=t.length,r=e,i=mn.prototype.thru;for(n&&t.reverse();r--;){var o=t[r];if(typeof o!=\"function\")throw new vn(I);if(i&&!s&&Je(o)==\"wrapper\")var s=new mn([],!0)}for(r=s?r:e;++r1&&G.reverse(),d&&ca))return!1;var p=o.get(n),d=o.get(t);if(p&&d)return p==t&&d==n;var _=-1,w=!0,x=e&le?new ct:u;for(o.set(n,t),o.set(t,n);++_1?\"& \":\"\")+t[r],t=t.join(e>2?\", \":\" \"),n.replace(rs,`{\n/* [wrapped with `+t+`] */\n`)}function ec(n){return R(n)||_t(n)||!!(Lu&&n&&n[Lu])}function Kn(n,t){var e=typeof n;return t=t??Yn,!!t&&(e==\"number\"||e!=\"symbol\"&&ps.test(n))&&n>-1&&n%1==0&&n0){if(++t>=Po)return arguments[0]}else t=0;return n.apply(u,arguments)}}function Xe(n,t){var e=-1,r=n.length,i=r-1;for(t=t===u?r:t;++e1?n[t-1]:u;return e=typeof e==\"function\"?(n.pop(),e):u,Bf(n,e)});function Mf(n){var t=f(n);return t.__chain__=!0,t}function gh(n,t){return t(n),n}function Qe(n,t){return t(n)}var ph=Hn(function(n){var t=n.length,e=t?n[0]:0,r=this.__wrapped__,i=function(o){return Fr(o,n)};return t>1||this.__actions__.length||!(r instanceof D)||!Kn(e)?this.thru(i):(r=r.slice(e,+e+(t?1:0)),r.__actions__.push({func:Qe,args:[i],thisArg:u}),new mn(r,this.__chain__).thru(function(o){return t&&!o.length&&o.push(u),o}))});function dh(){return Mf(this)}function _h(){return new mn(this.value(),this.__chain__)}function vh(){this.__values__===u&&(this.__values__=Vf(this.value()));var n=this.__index__>=this.__values__.length,t=n?u:this.__values__[this.__index__++];return{done:n,value:t}}function mh(){return this}function wh(n){for(var t,e=this;e instanceof We;){var r=Of(e);r.__index__=0,r.__values__=u,t?i.__wrapped__=r:t=r;var i=r;e=e.__wrapped__}return i.__wrapped__=n,t}function Ah(){var n=this.__wrapped__;if(n instanceof D){var t=n;return this.__actions__.length&&(t=new D(this)),t=t.reverse(),t.__actions__.push({func:Qe,args:[hi],thisArg:u}),new mn(t,this.__chain__)}return this.thru(hi)}function yh(){return ku(this.__wrapped__,this.__actions__)}var xh=He(function(n,t,e){M.call(n,e)?++n[e]:Un(n,e,1)});function Ih(n,t,e){var r=R(n)?cu:gl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}function Th(n,t){var e=R(n)?Xn:Wu;return e(n,T(t,3))}var Lh=lf(Pf),Ch=lf(bf);function Eh(n,t){return V(Ve(n,t),1)}function Rh(n,t){return V(Ve(n,t),ot)}function Sh(n,t,e){return e=e===u?1:S(e),V(Ve(n,t),e)}function Ff(n,t){var e=R(n)?_n:nt;return e(n,T(t,3))}function Nf(n,t){var e=R(n)?Ys:Gu;return e(n,T(t,3))}var Oh=He(function(n,t,e){M.call(n,e)?n[e].push(t):Un(n,e,[t])});function Ph(n,t,e,r){n=un(n)?n:Bt(n),e=e&&!r?S(e):0;var i=n.length;return e<0&&(e=J(i+e,0)),er(n)?e<=i&&n.indexOf(t,e)>-1:!!i&&Lt(n,t,e)>-1}var bh=P(function(n,t,e){var r=-1,i=typeof t==\"function\",o=un(n)?h(n.length):[];return nt(n,function(s){o[++r]=i?sn(t,s,e):te(s,t,e)}),o}),Dh=He(function(n,t,e){Un(n,e,t)});function Ve(n,t){var e=R(n)?$:$u;return e(n,T(t,3))}function Gh(n,t,e,r){return n==null?[]:(R(t)||(t=t==null?[]:[t]),e=r?u:e,R(e)||(e=e==null?[]:[e]),zu(n,t,e))}var Wh=He(function(n,t,e){n[e?0:1].push(t)},function(){return[[],[]]});function Bh(n,t,e){var r=R(n)?Lr:du,i=arguments.length<3;return r(n,T(t,4),e,i,nt)}function Mh(n,t,e){var r=R(n)?Xs:du,i=arguments.length<3;return r(n,T(t,4),e,i,Gu)}function Fh(n,t){var e=R(n)?Xn:Wu;return e(n,nr(T(t,3)))}function Nh(n){var t=R(n)?Ou:Pl;return t(n)}function Uh(n,t,e){(e?tn(n,t,e):t===u)?t=1:t=S(t);var r=R(n)?sl:bl;return r(n,t)}function $h(n){var t=R(n)?al:Gl;return t(n)}function Hh(n){if(n==null)return 0;if(un(n))return er(n)?Et(n):n.length;var t=j(n);return t==In||t==Tn?n.size:qr(n).length}function Kh(n,t,e){var r=R(n)?Cr:Wl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}var qh=P(function(n,t){if(n==null)return[];var e=t.length;return e>1&&tn(n,t[0],t[1])?t=[]:e>2&&tn(t[0],t[1],t[2])&&(t=[t[0]]),zu(n,V(t,1),[])}),ke=Ta||function(){return Y.Date.now()};function zh(n,t){if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){if(--n<1)return t.apply(this,arguments)}}function Uf(n,t,e){return t=e?u:t,t=n&&t==null?n.length:t,$n(n,Bn,u,u,u,u,t)}function $f(n,t){var e;if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){return--n>0&&(e=t.apply(this,arguments)),n<=1&&(t=u),e}}var pi=P(function(n,t,e){var r=pn;if(e.length){var i=Vn(e,Gt(pi));r|=On}return $n(n,r,t,e,i)}),Hf=P(function(n,t,e){var r=pn|ft;if(e.length){var i=Vn(e,Gt(Hf));r|=On}return $n(t,r,n,e,i)});function Kf(n,t,e){t=e?u:t;var r=$n(n,Sn,u,u,u,u,u,t);return r.placeholder=Kf.placeholder,r}function qf(n,t,e){t=e?u:t;var r=$n(n,At,u,u,u,u,u,t);return r.placeholder=qf.placeholder,r}function zf(n,t,e){var r,i,o,s,a,c,p=0,d=!1,_=!1,w=!0;if(typeof n!=\"function\")throw new vn(I);t=xn(t)||0,H(e)&&(d=!!e.leading,_=\"maxWait\"in e,o=_?J(xn(e.maxWait)||0,t):o,w=\"trailing\"in e?!!e.trailing:w);function x(z){var Rn=r,Zn=i;return r=i=u,p=z,s=n.apply(Zn,Rn),s}function L(z){return p=z,a=fe(b,t),d?x(z):s}function O(z){var Rn=z-c,Zn=z-p,lo=t-Rn;return _?k(lo,o-Zn):lo}function C(z){var Rn=z-c,Zn=z-p;return c===u||Rn>=t||Rn<0||_&&Zn>=o}function b(){var z=ke();if(C(z))return G(z);a=fe(b,O(z))}function G(z){return a=u,w&&r?x(z):(r=i=u,s)}function hn(){a!==u&&nf(a),p=0,r=c=i=a=u}function en(){return a===u?s:G(ke())}function gn(){var z=ke(),Rn=C(z);if(r=arguments,i=this,c=z,Rn){if(a===u)return L(c);if(_)return nf(a),a=fe(b,t),x(c)}return a===u&&(a=fe(b,t)),s}return gn.cancel=hn,gn.flush=en,gn}var Zh=P(function(n,t){return Du(n,1,t)}),Jh=P(function(n,t,e){return Du(n,xn(t)||0,e)});function Yh(n){return $n(n,ur)}function je(n,t){if(typeof n!=\"function\"||t!=null&&typeof t!=\"function\")throw new vn(I);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=e.cache;if(o.has(i))return o.get(i);var s=n.apply(this,r);return e.cache=o.set(i,s)||o,s};return e.cache=new(je.Cache||Nn),e}je.Cache=Nn;function nr(n){if(typeof n!=\"function\")throw new vn(I);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Xh(n){return $f(2,n)}var Qh=Bl(function(n,t){t=t.length==1&&R(t[0])?$(t[0],an(T())):$(V(t,1),an(T()));var e=t.length;return P(function(r){for(var i=-1,o=k(r.length,e);++i=t}),_t=Fu(function(){return arguments}())?Fu:function(n){return K(n)&&M.call(n,\"callee\")&&!Tu.call(n,\"callee\")},R=h.isArray,cg=uu?an(uu):wl;function un(n){return n!=null&&tr(n.length)&&!qn(n)}function q(n){return K(n)&&un(n)}function hg(n){return n===!0||n===!1||K(n)&&nn(n)==Ut}var it=Ca||Ci,gg=fu?an(fu):Al;function pg(n){return K(n)&&n.nodeType===1&&!oe(n)}function dg(n){if(n==null)return!0;if(un(n)&&(R(n)||typeof n==\"string\"||typeof n.splice==\"function\"||it(n)||Wt(n)||_t(n)))return!n.length;var t=j(n);if(t==In||t==Tn)return!n.size;if(ue(n))return!qr(n).length;for(var e in n)if(M.call(n,e))return!1;return!0}function _g(n,t){return ee(n,t)}function vg(n,t,e){e=typeof e==\"function\"?e:u;var r=e?e(n,t):u;return r===u?ee(n,t,u,e):!!r}function _i(n){if(!K(n))return!1;var t=nn(n);return t==ge||t==Uo||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!oe(n)}function mg(n){return typeof n==\"number\"&&Cu(n)}function qn(n){if(!H(n))return!1;var t=nn(n);return t==pe||t==Di||t==No||t==Ho}function Jf(n){return typeof n==\"number\"&&n==S(n)}function tr(n){return typeof n==\"number\"&&n>-1&&n%1==0&&n<=Yn}function H(n){var t=typeof n;return n!=null&&(t==\"object\"||t==\"function\")}function K(n){return n!=null&&typeof n==\"object\"}var Yf=ou?an(ou):xl;function wg(n,t){return n===t||Kr(n,t,fi(t))}function Ag(n,t,e){return e=typeof e==\"function\"?e:u,Kr(n,t,fi(t),e)}function yg(n){return Xf(n)&&n!=+n}function xg(n){if(uc(n))throw new E(m);return Nu(n)}function Ig(n){return n===null}function Tg(n){return n==null}function Xf(n){return typeof n==\"number\"||K(n)&&nn(n)==Ht}function oe(n){if(!K(n)||nn(n)!=Mn)return!1;var t=Re(n);if(t===null)return!0;var e=M.call(t,\"constructor\")&&t.constructor;return typeof e==\"function\"&&e instanceof e&&Te.call(e)==Aa}var vi=su?an(su):Il;function Lg(n){return Jf(n)&&n>=-Yn&&n<=Yn}var Qf=au?an(au):Tl;function er(n){return typeof n==\"string\"||!R(n)&&K(n)&&nn(n)==qt}function cn(n){return typeof n==\"symbol\"||K(n)&&nn(n)==de}var Wt=lu?an(lu):Ll;function Cg(n){return n===u}function Eg(n){return K(n)&&j(n)==zt}function Rg(n){return K(n)&&nn(n)==qo}var Sg=Ze(zr),Og=Ze(function(n,t){return n<=t});function Vf(n){if(!n)return[];if(un(n))return er(n)?Ln(n):rn(n);if(Yt&&n[Yt])return sa(n[Yt]());var t=j(n),e=t==In?br:t==Tn?ye:Bt;return e(n)}function zn(n){if(!n)return n===0?n:0;if(n=xn(n),n===ot||n===-ot){var t=n<0?-1:1;return t*Wo}return n===n?n:0}function S(n){var t=zn(n),e=t%1;return t===t?e?t-e:t:0}function kf(n){return n?ht(S(n),0,Pn):0}function xn(n){if(typeof n==\"number\")return n;if(cn(n))return ce;if(H(n)){var t=typeof n.valueOf==\"function\"?n.valueOf():n;n=H(t)?t+\"\":t}if(typeof n!=\"string\")return n===0?n:+n;n=_u(n);var e=cs.test(n);return e||gs.test(n)?zs(n.slice(2),e?2:8):ls.test(n)?ce:+n}function jf(n){return Dn(n,fn(n))}function Pg(n){return n?ht(S(n),-Yn,Yn):n===0?n:0}function B(n){return n==null?\"\":ln(n)}var bg=bt(function(n,t){if(ue(t)||un(t)){Dn(t,X(t),n);return}for(var e in t)M.call(t,e)&&jt(n,e,t[e])}),no=bt(function(n,t){Dn(t,fn(t),n)}),rr=bt(function(n,t,e,r){Dn(t,fn(t),n,r)}),Dg=bt(function(n,t,e,r){Dn(t,X(t),n,r)}),Gg=Hn(Fr);function Wg(n,t){var e=Pt(n);return t==null?e:Pu(e,t)}var Bg=P(function(n,t){n=F(n);var e=-1,r=t.length,i=r>2?t[2]:u;for(i&&tn(t[0],t[1],i)&&(r=1);++e1),o}),Dn(n,ii(n),e),r&&(e=wn(e,Jn|Oi|mt,Jl));for(var i=t.length;i--;)Qr(e,t[i]);return e});function np(n,t){return eo(n,nr(T(t)))}var tp=Hn(function(n,t){return n==null?{}:Rl(n,t)});function eo(n,t){if(n==null)return{};var e=$(ii(n),function(r){return[r]});return t=T(t),Zu(n,e,function(r,i){return t(r,i[0])})}function ep(n,t,e){t=et(t,n);var r=-1,i=t.length;for(i||(i=1,n=u);++rt){var r=n;n=t,t=r}if(e||n%1||t%1){var i=Eu();return k(n+i*(t-n+qs(\"1e-\"+((i+\"\").length-1))),t)}return Jr(n,t)}var gp=Dt(function(n,t,e){return t=t.toLowerCase(),n+(e?uo(t):t)});function uo(n){return Ai(B(n).toLowerCase())}function fo(n){return n=B(n),n&&n.replace(ds,ra).replace(Gs,\"\")}function pp(n,t,e){n=B(n),t=ln(t);var r=n.length;e=e===u?r:ht(S(e),0,r);var i=e;return e-=t.length,e>=0&&n.slice(e,i)==t}function dp(n){return n=B(n),n&&Xo.test(n)?n.replace(Bi,ia):n}function _p(n){return n=B(n),n&&ts.test(n)?n.replace(dr,\"\\\\$&\"):n}var vp=Dt(function(n,t,e){return n+(e?\"-\":\"\")+t.toLowerCase()}),mp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toLowerCase()}),wp=af(\"toLowerCase\");function Ap(n,t,e){n=B(n),t=S(t);var r=t?Et(n):0;if(!t||r>=t)return n;var i=(t-r)/2;return ze(be(i),e)+n+ze(Pe(i),e)}function yp(n,t,e){n=B(n),t=S(t);var r=t?Et(n):0;return t&&r>>0,e?(n=B(n),n&&(typeof t==\"string\"||t!=null&&!vi(t))&&(t=ln(t),!t&&Ct(n))?rt(Ln(n),0,e):n.split(t,e)):[]}var Rp=Dt(function(n,t,e){return n+(e?\" \":\"\")+Ai(t)});function Sp(n,t,e){return n=B(n),e=e==null?0:ht(S(e),0,n.length),t=ln(t),n.slice(e,e+t.length)==t}function Op(n,t,e){var r=f.templateSettings;e&&tn(n,t,e)&&(t=u),n=B(n),t=rr({},t,r,_f);var i=rr({},t.imports,r.imports,_f),o=X(i),s=Pr(i,o),a,c,p=0,d=t.interpolate||_e,_=\"__p += '\",w=Dr((t.escape||_e).source+\"|\"+d.source+\"|\"+(d===Mi?as:_e).source+\"|\"+(t.evaluate||_e).source+\"|$\",\"g\"),x=\"//# sourceURL=\"+(M.call(t,\"sourceURL\")?(t.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++Ns+\"]\")+`\n`;n.replace(w,function(C,b,G,hn,en,gn){return G||(G=hn),_+=n.slice(p,gn).replace(_s,ua),b&&(a=!0,_+=`' +\n__e(`+b+`) +\n'`),en&&(c=!0,_+=`';\n`+en+`;\n__p += '`),G&&(_+=`' +\n((__t = (`+G+`)) == null ? '' : __t) +\n'`),p=gn+C.length,C}),_+=`';\n`;var L=M.call(t,\"variable\")&&t.variable;if(!L)_=`with (obj) {\n`+_+`\n}\n`;else if(os.test(L))throw new E(Q);_=(c?_.replace(zo,\"\"):_).replace(Zo,\"$1\").replace(Jo,\"$1;\"),_=\"function(\"+(L||\"obj\")+`) {\n`+(L?\"\":`obj || (obj = {});\n`)+\"var __t, __p = ''\"+(a?\", __e = _.escape\":\"\")+(c?`, __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n`:`;\n`)+_+`return __p\n}`;var O=so(function(){return W(o,x+\"return \"+_).apply(u,s)});if(O.source=_,_i(O))throw O;return O}function Pp(n){return B(n).toLowerCase()}function bp(n){return B(n).toUpperCase()}function Dp(n,t,e){if(n=B(n),n&&(e||t===u))return _u(n);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=Ln(t),o=vu(r,i),s=mu(r,i)+1;return rt(r,o,s).join(\"\")}function Gp(n,t,e){if(n=B(n),n&&(e||t===u))return n.slice(0,Au(n)+1);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=mu(r,Ln(t))+1;return rt(r,0,i).join(\"\")}function Wp(n,t,e){if(n=B(n),n&&(e||t===u))return n.replace(_r,\"\");if(!n||!(t=ln(t)))return n;var r=Ln(n),i=vu(r,Ln(t));return rt(r,i).join(\"\")}function Bp(n,t){var e=So,r=Oo;if(H(t)){var i=\"separator\"in t?t.separator:i;e=\"length\"in t?S(t.length):e,r=\"omission\"in t?ln(t.omission):r}n=B(n);var o=n.length;if(Ct(n)){var s=Ln(n);o=s.length}if(e>=o)return n;var a=e-Et(r);if(a<1)return r;var c=s?rt(s,0,a).join(\"\"):n.slice(0,a);if(i===u)return c+r;if(s&&(a+=c.length-a),vi(i)){if(n.slice(a).search(i)){var p,d=c;for(i.global||(i=Dr(i.source,B(Fi.exec(i))+\"g\")),i.lastIndex=0;p=i.exec(d);)var _=p.index;c=c.slice(0,_===u?a:_)}}else if(n.indexOf(ln(i),a)!=a){var w=c.lastIndexOf(i);w>-1&&(c=c.slice(0,w))}return c+r}function Mp(n){return n=B(n),n&&Yo.test(n)?n.replace(Wi,ha):n}var Fp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toUpperCase()}),Ai=af(\"toUpperCase\");function oo(n,t,e){return n=B(n),t=e?u:t,t===u?oa(n)?da(n):ks(n):n.match(t)||[]}var so=P(function(n,t){try{return sn(n,u,t)}catch(e){return _i(e)?e:new E(e)}}),Np=Hn(function(n,t){return _n(t,function(e){e=Gn(e),Un(n,e,pi(n[e],n))}),n});function Up(n){var t=n==null?0:n.length,e=T();return n=t?$(n,function(r){if(typeof r[1]!=\"function\")throw new vn(I);return[e(r[0]),r[1]]}):[],P(function(r){for(var i=-1;++iYn)return[];var e=Pn,r=k(n,Pn);t=T(t),n-=Pn;for(var i=Or(r,t);++e0||t<0)?new D(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==u&&(t=S(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},D.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},D.prototype.toArray=function(){return this.take(Pn)},bn(D.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=f[r?\"take\"+(t==\"last\"?\"Right\":\"\"):t],o=r||/^find/.test(t);i&&(f.prototype[t]=function(){var s=this.__wrapped__,a=r?[1]:arguments,c=s instanceof D,p=a[0],d=c||R(s),_=function(b){var G=i.apply(f,Qn([b],a));return r&&w?G[0]:G};d&&e&&typeof p==\"function\"&&p.length!=1&&(c=d=!1);var w=this.__chain__,x=!!this.__actions__.length,L=o&&!w,O=c&&!x;if(!o&&d){s=O?s:new D(this);var C=n.apply(s,a);return C.__actions__.push({func:Qe,args:[_],thisArg:u}),new mn(C,w)}return L&&O?n.apply(this,a):(C=this.thru(_),L?r?C.value()[0]:C.value():C)})}),_n([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(n){var t=xe[n],e=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",r=/^(?:pop|shift)$/.test(n);f.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(R(o)?o:[],i)}return this[e](function(s){return t.apply(R(s)?s:[],i)})}}),bn(D.prototype,function(n,t){var e=f[t];if(e){var r=e.name+\"\";M.call(Ot,r)||(Ot[r]=[]),Ot[r].push({name:t,func:e})}}),Ot[Ke(u,ft).name]=[{name:\"wrapper\",func:u}],D.prototype.clone=Ma,D.prototype.reverse=Fa,D.prototype.value=Na,f.prototype.at=ph,f.prototype.chain=dh,f.prototype.commit=_h,f.prototype.next=vh,f.prototype.plant=wh,f.prototype.reverse=Ah,f.prototype.toJSON=f.prototype.valueOf=f.prototype.value=yh,f.prototype.first=f.prototype.head,Yt&&(f.prototype[Yt]=mh),f},kn=_a();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?(Y._=kn,define(function(){return kn})):st?((st.exports=kn)._=kn,xr._=kn):Y._=kn}).call(Mt)});var t_={};Od(t_,{albIpMonitor:()=>Ao,albTargetRecordMonitor:()=>Eo});module.exports=Pd(t_);var go=ho(require(\"dns\")),po=require(\"@aws-sdk/lib-dynamodb\"),_o=require(\"@aws-sdk/client-dynamodb\"),vo=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),Ei=process.env.LOOKUP_TABLE??\"\",mo=po.DynamoDBDocument.from(new _o.DynamoDB),wo=new vo.ElasticLoadBalancingV2({logger:console}),bd=async u=>{console.log(`Scanning route lookup table ${Ei}`);let v={TableName:u},y=[],m;do m=await mo.scan(v),m.Items?.forEach(I=>y.push(I)),v.ExclusiveStartKey=m.LastEvaluatedKey;while(typeof m.LastEvaluatedKey<\"u\");return y},Dd=async(u,v,y)=>{let m=v.map(Q=>({Id:Q,Port:y,AvailabilityZone:\"all\"})),I={TargetGroupArn:u,Targets:m};return wo.registerTargets(I)},Gd=async(u,v)=>{console.log(`Deregistering IP addresses ${JSON.stringify(v)} from target group ${u}`);let y=v.map(I=>({Id:I})),m={TargetGroupArn:u,Targets:y};return wo.deregisterTargets(m)},Wd=async u=>new Promise((v,y)=>{go.lookup(u,{all:!0,family:4},(m,I)=>{m?y(m):v(I.map(Q=>Q.address).sort())})}),Bd=(u,v)=>{let y=u.indexOf(v);return y>-1&&u.splice(y,1),u},Md=async u=>{let v={TableName:Ei,Item:u};return mo.put(v)},Ao=async(u,v)=>{let y=await bd(Ei)??[];for(let m of y)try{m.dnsLookupIps=[];try{m.dnsLookupIps=await Wd(m.targetAlbDnsName)}catch(I){console.log(I)}m.ipAddList=m.dnsLookupIps?.filter(I=>!m.metadata?.targetGroupIpAddresses?.includes(I))??[],m.ipRemoveList=m.metadata?.targetGroupIpAddresses?.filter(I=>!m.dnsLookupIps?.includes(I))??[],m.ipAddList?.length>0?(console.log(`Registering new ips ${JSON.stringify(m.ipAddList)} to target ${m.metadata.targetGroupArn} with port ${m.targetGroupDestinationPort}`),await Dd(m.metadata.targetGroupArn,m.ipAddList,m.targetGroupDestinationPort),m.metadata.targetGroupIpAddresses.push(...m.ipAddList)):console.log(\"No new Ip addresses to register\"),m.ipRemoveList?.length>0?(console.log(`Deregistering old ip addresses ${JSON.stringify(m.ipRemoveList)} from target group targetGroupRecord.metadata.targetGroupArn`),await Gd(m.metadata.targetGroupArn,m.ipRemoveList),m.ipRemoveList?.forEach(I=>{console.log(m.metadata.targetGroupIpAddresses,I),m.metadata.targetGroupIpAddresses=Bd(m.metadata.targetGroupIpAddresses,I)})):console.log(\"No old ip addresses to deregister\"),delete m.ipAddList,delete m.ipRemoveList,delete m.dnsLookupIps,console.log(\"Writing record to DDB table \",JSON.stringify(m,null,4)),await Md(m)}catch(I){console.log(\"There was a problem updating the record \",JSON.stringify(m,null,4)),console.log(I)}return\"Done\"};var xo=require(\"@aws-sdk/lib-dynamodb\"),Io=require(\"@aws-sdk/client-dynamodb\"),Ri=require(\"@aws-sdk/util-dynamodb\"),Ft=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),vt=ho(yo()),Wn=new Ft.ElasticLoadBalancingV2,Fd=xo.DynamoDBDocument.from(new Io.DynamoDB),Nd=process.env.LOOKUP_TABLE||\"\",Ud=u=>new Promise(v=>{setTimeout(v,u)}),$d=async(u,v)=>{let y={TargetGroupArn:u,HealthCheckPath:v};return Wn.send(new Ft.ModifyTargetGroupCommand(y))},Hd=(u,v)=>{let y=u.healthCheckPath||\"/\",m=v.healthCheckPath||\"/\";return y!==m},Kd=async(u,v,y,m,I=\"/\")=>{let Q={Name:u,Port:v,Protocol:m,VpcId:y,TargetType:Ft.TargetTypeEnum.IP,HealthCheckPath:I};return Wn.createTargetGroup(Q)},qd=async u=>{let v={Attributes:[{Key:\"stickiness.enabled\",Value:\"true\"}],TargetGroupArn:u};return Wn.modifyTargetGroupAttributes(v)},To=async(u,v)=>{let y={ListenerArn:v};return((await Wn.describeRules(y)).Rules?.filter(Q=>Q.Priority===u.toString())||[]).length===0},Lo=async u=>{try{let v={ListenerArns:[u]};return await Wn.describeListeners(v),Promise.resolve(!0)}catch(v){return console.log(v),Promise.resolve(!1)}},zd=async(u,v,y,m,I)=>{console.log(\"trying to create listener rule\"),console.log(y,v,u,m,I);let Q={Actions:[{TargetGroupArn:m,Type:\"forward\"}],ListenerArn:u,Priority:I,Conditions:[]};if(v?.length>0){let ut={Field:\"path-pattern\",Values:v};Q.Conditions?.push(ut)}if(y?.length>0){let ut={Field:\"host-header\",Values:y};Q.Conditions?.push(ut)}return Wn.createRule(Q)},Zd=async(u,v,y,m)=>{let I={Actions:[{TargetGroupArn:m,Type:\"forward\"}],RuleArn:u,Conditions:[]};if(v?.length>0){let Q={Field:\"path-pattern\",Values:v};I?.Conditions?.push(Q)}if(y?.length>0){let Q={Field:\"host-header\",Values:y};I?.Conditions?.push(Q)}return Wn.modifyRule(I)},Jd=async u=>{let v={RuleArn:u};return Wn.deleteRule(v)},Yd=async u=>{let v={TargetGroupArn:u};return Wn.deleteTargetGroup(v)},Xd=async(u,v)=>{let y={RulePriorities:[{Priority:v,RuleArn:u}]};return Wn.setRulePriorities(y)},Qd=async(u,v)=>{let y={TableName:u,Item:v};return Fd.put(y)},Vd=(u,v)=>{let y={vpcId:u.vpcId,destinationPort:u.targetGroupDestinationPort,protocol:u.targetGroupProtocol},m={vpcId:v.vpcId,destinationPort:v.targetGroupDestinationPort,protocol:v.targetGroupProtocol};return!vt.isEqual(y,m)},kd=(u,v)=>{let y={sourceListenerArn:u.rule.sourceListenerArn,priority:u.rule.condition.priority,paths:u.rule.condition.paths?.sort(),hosts:u.rule.condition.hosts?.sort()},m={sourceListenerArn:v.rule.sourceListenerArn,priority:v.rule.condition.priority,paths:v.rule.condition.paths?.sort(),hosts:v.rule.condition.hosts?.sort()};return!vt.isEqual(y,m)},jd=(u,v)=>{let y=u.rule.condition.priority,m=v.rule.condition.priority;return y!==m},Si=async u=>{console.log(\"Record creation detected.\");try{if(!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);if(console.log(\"Checking if priority is valid\"),!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match. Exiting`);let y=(await Kd(u.id,u.targetGroupDestinationPort,u.vpcId,u.targetGroupProtocol,u.healthCheckPath||\"/\"))?.TargetGroups?.[0].TargetGroupArn??\"\";await qd(y);let I=(await zd(u.rule.sourceListenerArn,u.rule.condition.paths,u.rule.condition.hosts,y,u.rule.condition.priority))?.Rules?.[0].RuleArn??\"\";if(!y||!I)throw new Error(`There was an error getting the target group arn or listener rule arn. \nTarget Group Arn: ${y}\nRule Arn: ${I}`);return u.metadata={targetGroupArn:y,ruleArn:I,targetGroupIpAddresses:[]},await Qd(Nd,u),console.log(\"Added metadata to table\"),u}catch(v){throw console.log(\"There was a problem creating resources for the following record\",JSON.stringify(u,null,4)),v}},Co=async u=>{try{console.log(`Deleting listener rule and target group for ${u.id}`),await Jd(u.metadata.ruleArn),console.log(\"Deleted listener rule.\")}catch(v){console.log(v),console.log(\"Could not delete listener rule for record. Continuing...\",JSON.stringify(u,null,4))}try{await Yd(u.metadata.targetGroupArn),console.log(\"Deleted target group\");return}catch(v){console.log(\"Could not delete target group for record\",JSON.stringify(u,null,4)),console.log(v)}},n_=async(u,v)=>{try{if(console.log(`The record with id ${u.id} was updated. Performing comparison.`),!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);let y=vt.cloneDeep(u),m=vt.cloneDeep(v);if(delete y.metadata,delete m.metadata,vt.isEqual(y,m)){console.log(`Update Record handler found no changes made for record with Id ${u.id}`);return}if(!v.metadata){console.log(\"No previous metadata detected for record. Creating metadata based off of new entry\"),await Si(u);return}if(kd(v,u)&&(console.log(`Detected a listener rule change. Modifying rule ${u.metadata.ruleArn}`),await Zd(u.metadata.ruleArn,u.rule.condition.paths,u.rule.condition.hosts,u.metadata.targetGroupArn)),jd(v,u)){if(!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match.`);await Xd(u.metadata.ruleArn,u.rule.condition.priority)}Hd(v,u)&&(console.log(`Detected a health check path change. Updating target group health check in-place for ${u.metadata.targetGroupArn}`),await $d(u.metadata.targetGroupArn,u.healthCheckPath||\"/\")),Vd(v,u)&&(console.log(`Detected a target group change. deleting target group ${u.metadata.targetGroupArn} and creating a new target group`),await Co(u),await Ud(1e4),await Si(u))}catch(y){throw console.log(\"There was a problem updating a target group or listener rule for the records:\"),console.log(\"Old Record: \",JSON.stringify(v,null,4)),console.log(\"New Record: \",JSON.stringify(u,null,4)),y}},Eo=async(u,v)=>{console.log(JSON.stringify(u,null,2));let y=u.Records.map(m=>(m.dynamodb.OldImage&&(m.dynamodb.OldImage=(0,Ri.unmarshall)(m.dynamodb.OldImage)),m.dynamodb.NewImage&&(m.dynamodb.NewImage=(0,Ri.unmarshall)(m.dynamodb.NewImage)),m));for(let m of y)m.eventName===\"INSERT\"&&await Si(m.dynamodb.NewImage),m.eventName===\"MODIFY\"&&await n_(m.dynamodb.NewImage,m.dynamodb.OldImage),m.eventName===\"REMOVE\"&&await Co(m.dynamodb.OldImage)};0&&(module.exports={albIpMonitor,albTargetRecordMonitor});\n/*! Bundled license information:\n\nlodash/lodash.js:\n (**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n *)\n*/\n" }, "Environment": { "Variables": { @@ -228,7 +246,7 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": "nodejs22.x", "Timeout": 60 }, "DependsOn": [ @@ -236,7 +254,23 @@ "AlbIpForwardingdnsFWLambdaServiceRoleE2550228" ], "Metadata": { - "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/dnsFWLambda/Resource" + "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/dnsFWLambda/Resource", + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "CloudWatch Logs are enabled in AWSLambdaBasicExecutionRole" + }, + { + "id": "W89", + "reason": "This function supports infrastructure deployment and is not deployed inside a VPC." + }, + { + "id": "W92", + "reason": "This function supports infrastructure deployment and does not require setting ReservedConcurrentExecutions." + } + ] + } } }, "AlbIpForwardingdnsFWPolicyB74542DB": { @@ -263,7 +297,14 @@ ] }, "Metadata": { - "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/dnsFWPolicy/Resource" + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W12", + "reason": "Lambda need to be able to work with any ELB in the account" + } + ] + } } }, "AlbIpForwardingddbDnsRecordMonitorServiceRoleBDC0C08F": { @@ -311,7 +352,14 @@ } }, "Metadata": { - "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/ddbDnsRecordMonitor/ServiceRole/Resource" + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W28", + "reason": "Names must be set explicitly to be protected by accelerator SCPs`" + } + ] + } } }, "AlbIpForwardingddbDnsRecordMonitorServiceRoleDefaultPolicyBB5ECA75": { @@ -400,7 +448,7 @@ "Type": "AWS::Lambda::Function", "Properties": { "Code": { - "ZipFile": "\"use strict\";var Td=Object.create;var rr=Object.defineProperty;var Ld=Object.getOwnPropertyDescriptor;var Cd=Object.getOwnPropertyNames;var Rd=Object.getPrototypeOf,Ed=Object.prototype.hasOwnProperty;var Sd=(u,v)=>()=>(v||u((v={exports:{}}).exports,v),v.exports),Od=(u,v)=>{for(var x in v)rr(u,x,{get:v[x],enumerable:!0})},co=(u,v,x,m)=>{if(v&&typeof v==\"object\"||typeof v==\"function\")for(let I of Cd(v))!Ed.call(u,I)&&I!==x&&rr(u,I,{get:()=>v[I],enumerable:!(m=Ld(v,I))||m.enumerable});return u};var ho=(u,v,x)=>(x=u!=null?Td(Rd(u)):{},co(v||!u||!u.__esModule?rr(x,\"default\",{value:u,enumerable:!0}):x,u)),Pd=u=>co(rr({},\"__esModule\",{value:!0}),u);var xo=Sd((Ft,oe)=>{(function(){var u,v=\"4.17.21\",x=200,m=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",I=\"Expected a function\",j=\"Invalid `variable` option passed into `_.template`\",ut=\"__lodash_hash_undefined__\",Eo=500,se=\"__lodash_placeholder__\",Jn=1,Oi=2,mt=4,wt=1,ae=2,pn=1,ft=2,Pi=4,Sn=8,At=16,On=32,xt=64,Bn=128,Mt=256,ur=512,So=30,Oo=\"...\",Po=800,bo=16,bi=1,Do=2,Wo=3,ot=1/0,Yn=9007199254740991,Bo=17976931348623157e292,le=0/0,Pn=4294967295,Go=Pn-1,Fo=Pn>>>1,Mo=[[\"ary\",Bn],[\"bind\",pn],[\"bindKey\",ft],[\"curry\",Sn],[\"curryRight\",At],[\"flip\",ur],[\"partial\",On],[\"partialRight\",xt],[\"rearg\",Mt]],yt=\"[object Arguments]\",ce=\"[object Array]\",No=\"[object AsyncFunction]\",Nt=\"[object Boolean]\",Ut=\"[object Date]\",Uo=\"[object DOMException]\",he=\"[object Error]\",ge=\"[object Function]\",Di=\"[object GeneratorFunction]\",In=\"[object Map]\",$t=\"[object Number]\",$o=\"[object Null]\",Gn=\"[object Object]\",Wi=\"[object Promise]\",Ho=\"[object Proxy]\",Ht=\"[object RegExp]\",Tn=\"[object Set]\",Kt=\"[object String]\",pe=\"[object Symbol]\",Ko=\"[object Undefined]\",qt=\"[object WeakMap]\",qo=\"[object WeakSet]\",zt=\"[object ArrayBuffer]\",It=\"[object DataView]\",fr=\"[object Float32Array]\",or=\"[object Float64Array]\",sr=\"[object Int8Array]\",ar=\"[object Int16Array]\",lr=\"[object Int32Array]\",cr=\"[object Uint8Array]\",hr=\"[object Uint8ClampedArray]\",gr=\"[object Uint16Array]\",pr=\"[object Uint32Array]\",zo=/\\b__p \\+= '';/g,Zo=/\\b(__p \\+=) '' \\+/g,Jo=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,Bi=/&(?:amp|lt|gt|quot|#39);/g,Gi=/[&<>\"']/g,Yo=RegExp(Bi.source),Xo=RegExp(Gi.source),Qo=/<%-([\\s\\S]+?)%>/g,Vo=/<%([\\s\\S]+?)%>/g,Fi=/<%=([\\s\\S]+?)%>/g,ko=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,jo=/^\\w*$/,ns=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,dr=/[\\\\^$.*+?()[\\]{}|]/g,ts=RegExp(dr.source),_r=/^\\s+/,es=/\\s/,rs=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,is=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,us=/,? & /,fs=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,os=/[()=,{}\\[\\]\\/\\s]/,ss=/\\\\(\\\\)?/g,as=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Mi=/\\w*$/,ls=/^[-+]0x[0-9a-f]+$/i,cs=/^0b[01]+$/i,hs=/^\\[object .+?Constructor\\]$/,gs=/^0o[0-7]+$/i,ps=/^(?:0|[1-9]\\d*)$/,ds=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,de=/($^)/,_s=/['\\n\\r\\u2028\\u2029\\\\]/g,_e=\"\\\\ud800-\\\\udfff\",vs=\"\\\\u0300-\\\\u036f\",ms=\"\\\\ufe20-\\\\ufe2f\",ws=\"\\\\u20d0-\\\\u20ff\",Ni=vs+ms+ws,Ui=\"\\\\u2700-\\\\u27bf\",$i=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",As=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",xs=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",ys=\"\\\\u2000-\\\\u206f\",Is=\" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",Hi=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",Ki=\"\\\\ufe0e\\\\ufe0f\",qi=As+xs+ys+Is,vr=\"['\\u2019]\",Ts=\"[\"+_e+\"]\",zi=\"[\"+qi+\"]\",ve=\"[\"+Ni+\"]\",Zi=\"\\\\d+\",Ls=\"[\"+Ui+\"]\",Ji=\"[\"+$i+\"]\",Yi=\"[^\"+_e+qi+Zi+Ui+$i+Hi+\"]\",mr=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",Cs=\"(?:\"+ve+\"|\"+mr+\")\",Xi=\"[^\"+_e+\"]\",wr=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Ar=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",Tt=\"[\"+Hi+\"]\",Qi=\"\\\\u200d\",Vi=\"(?:\"+Ji+\"|\"+Yi+\")\",Rs=\"(?:\"+Tt+\"|\"+Yi+\")\",ki=\"(?:\"+vr+\"(?:d|ll|m|re|s|t|ve))?\",ji=\"(?:\"+vr+\"(?:D|LL|M|RE|S|T|VE))?\",nu=Cs+\"?\",tu=\"[\"+Ki+\"]?\",Es=\"(?:\"+Qi+\"(?:\"+[Xi,wr,Ar].join(\"|\")+\")\"+tu+nu+\")*\",Ss=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",Os=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",eu=tu+nu+Es,Ps=\"(?:\"+[Ls,wr,Ar].join(\"|\")+\")\"+eu,bs=\"(?:\"+[Xi+ve+\"?\",ve,wr,Ar,Ts].join(\"|\")+\")\",Ds=RegExp(vr,\"g\"),Ws=RegExp(ve,\"g\"),xr=RegExp(mr+\"(?=\"+mr+\")|\"+bs+eu,\"g\"),Bs=RegExp([Tt+\"?\"+Ji+\"+\"+ki+\"(?=\"+[zi,Tt,\"$\"].join(\"|\")+\")\",Rs+\"+\"+ji+\"(?=\"+[zi,Tt+Vi,\"$\"].join(\"|\")+\")\",Tt+\"?\"+Vi+\"+\"+ki,Tt+\"+\"+ji,Os,Ss,Zi,Ps].join(\"|\"),\"g\"),Gs=RegExp(\"[\"+Qi+_e+Ni+Ki+\"]\"),Fs=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ms=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Ns=-1,U={};U[fr]=U[or]=U[sr]=U[ar]=U[lr]=U[cr]=U[hr]=U[gr]=U[pr]=!0,U[yt]=U[ce]=U[zt]=U[Nt]=U[It]=U[Ut]=U[he]=U[ge]=U[In]=U[$t]=U[Gn]=U[Ht]=U[Tn]=U[Kt]=U[qt]=!1;var N={};N[yt]=N[ce]=N[zt]=N[It]=N[Nt]=N[Ut]=N[fr]=N[or]=N[sr]=N[ar]=N[lr]=N[In]=N[$t]=N[Gn]=N[Ht]=N[Tn]=N[Kt]=N[pe]=N[cr]=N[hr]=N[gr]=N[pr]=!0,N[he]=N[ge]=N[qt]=!1;var Us={\\u00C0:\"A\",\\u00C1:\"A\",\\u00C2:\"A\",\\u00C3:\"A\",\\u00C4:\"A\",\\u00C5:\"A\",\\u00E0:\"a\",\\u00E1:\"a\",\\u00E2:\"a\",\\u00E3:\"a\",\\u00E4:\"a\",\\u00E5:\"a\",\\u00C7:\"C\",\\u00E7:\"c\",\\u00D0:\"D\",\\u00F0:\"d\",\\u00C8:\"E\",\\u00C9:\"E\",\\u00CA:\"E\",\\u00CB:\"E\",\\u00E8:\"e\",\\u00E9:\"e\",\\u00EA:\"e\",\\u00EB:\"e\",\\u00CC:\"I\",\\u00CD:\"I\",\\u00CE:\"I\",\\u00CF:\"I\",\\u00EC:\"i\",\\u00ED:\"i\",\\u00EE:\"i\",\\u00EF:\"i\",\\u00D1:\"N\",\\u00F1:\"n\",\\u00D2:\"O\",\\u00D3:\"O\",\\u00D4:\"O\",\\u00D5:\"O\",\\u00D6:\"O\",\\u00D8:\"O\",\\u00F2:\"o\",\\u00F3:\"o\",\\u00F4:\"o\",\\u00F5:\"o\",\\u00F6:\"o\",\\u00F8:\"o\",\\u00D9:\"U\",\\u00DA:\"U\",\\u00DB:\"U\",\\u00DC:\"U\",\\u00F9:\"u\",\\u00FA:\"u\",\\u00FB:\"u\",\\u00FC:\"u\",\\u00DD:\"Y\",\\u00FD:\"y\",\\u00FF:\"y\",\\u00C6:\"Ae\",\\u00E6:\"ae\",\\u00DE:\"Th\",\\u00FE:\"th\",\\u00DF:\"ss\",\\u0100:\"A\",\\u0102:\"A\",\\u0104:\"A\",\\u0101:\"a\",\\u0103:\"a\",\\u0105:\"a\",\\u0106:\"C\",\\u0108:\"C\",\\u010A:\"C\",\\u010C:\"C\",\\u0107:\"c\",\\u0109:\"c\",\\u010B:\"c\",\\u010D:\"c\",\\u010E:\"D\",\\u0110:\"D\",\\u010F:\"d\",\\u0111:\"d\",\\u0112:\"E\",\\u0114:\"E\",\\u0116:\"E\",\\u0118:\"E\",\\u011A:\"E\",\\u0113:\"e\",\\u0115:\"e\",\\u0117:\"e\",\\u0119:\"e\",\\u011B:\"e\",\\u011C:\"G\",\\u011E:\"G\",\\u0120:\"G\",\\u0122:\"G\",\\u011D:\"g\",\\u011F:\"g\",\\u0121:\"g\",\\u0123:\"g\",\\u0124:\"H\",\\u0126:\"H\",\\u0125:\"h\",\\u0127:\"h\",\\u0128:\"I\",\\u012A:\"I\",\\u012C:\"I\",\\u012E:\"I\",\\u0130:\"I\",\\u0129:\"i\",\\u012B:\"i\",\\u012D:\"i\",\\u012F:\"i\",\\u0131:\"i\",\\u0134:\"J\",\\u0135:\"j\",\\u0136:\"K\",\\u0137:\"k\",\\u0138:\"k\",\\u0139:\"L\",\\u013B:\"L\",\\u013D:\"L\",\\u013F:\"L\",\\u0141:\"L\",\\u013A:\"l\",\\u013C:\"l\",\\u013E:\"l\",\\u0140:\"l\",\\u0142:\"l\",\\u0143:\"N\",\\u0145:\"N\",\\u0147:\"N\",\\u014A:\"N\",\\u0144:\"n\",\\u0146:\"n\",\\u0148:\"n\",\\u014B:\"n\",\\u014C:\"O\",\\u014E:\"O\",\\u0150:\"O\",\\u014D:\"o\",\\u014F:\"o\",\\u0151:\"o\",\\u0154:\"R\",\\u0156:\"R\",\\u0158:\"R\",\\u0155:\"r\",\\u0157:\"r\",\\u0159:\"r\",\\u015A:\"S\",\\u015C:\"S\",\\u015E:\"S\",\\u0160:\"S\",\\u015B:\"s\",\\u015D:\"s\",\\u015F:\"s\",\\u0161:\"s\",\\u0162:\"T\",\\u0164:\"T\",\\u0166:\"T\",\\u0163:\"t\",\\u0165:\"t\",\\u0167:\"t\",\\u0168:\"U\",\\u016A:\"U\",\\u016C:\"U\",\\u016E:\"U\",\\u0170:\"U\",\\u0172:\"U\",\\u0169:\"u\",\\u016B:\"u\",\\u016D:\"u\",\\u016F:\"u\",\\u0171:\"u\",\\u0173:\"u\",\\u0174:\"W\",\\u0175:\"w\",\\u0176:\"Y\",\\u0177:\"y\",\\u0178:\"Y\",\\u0179:\"Z\",\\u017B:\"Z\",\\u017D:\"Z\",\\u017A:\"z\",\\u017C:\"z\",\\u017E:\"z\",\\u0132:\"IJ\",\\u0133:\"ij\",\\u0152:\"Oe\",\\u0153:\"oe\",\\u0149:\"'n\",\\u017F:\"s\"},$s={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},Hs={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"},Ks={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},qs=parseFloat,zs=parseInt,ru=typeof global==\"object\"&&global&&global.Object===Object&&global,Zs=typeof self==\"object\"&&self&&self.Object===Object&&self,Y=ru||Zs||Function(\"return this\")(),yr=typeof Ft==\"object\"&&Ft&&!Ft.nodeType&&Ft,st=yr&&typeof oe==\"object\"&&oe&&!oe.nodeType&&oe,iu=st&&st.exports===yr,Ir=iu&&ru.process,dn=function(){try{var l=st&&st.require&&st.require(\"util\").types;return l||Ir&&Ir.binding&&Ir.binding(\"util\")}catch{}}(),uu=dn&&dn.isArrayBuffer,fu=dn&&dn.isDate,ou=dn&&dn.isMap,su=dn&&dn.isRegExp,au=dn&&dn.isSet,lu=dn&&dn.isTypedArray;function sn(l,g,h){switch(h.length){case 0:return l.call(g);case 1:return l.call(g,h[0]);case 2:return l.call(g,h[0],h[1]);case 3:return l.call(g,h[0],h[1],h[2])}return l.apply(g,h)}function Js(l,g,h,A){for(var R=-1,B=l==null?0:l.length;++R-1}function Tr(l,g,h){for(var A=-1,R=l==null?0:l.length;++A-1;);return h}function mu(l,g){for(var h=l.length;h--&&Lt(g,l[h],0)>-1;);return h}function ea(l,g){for(var h=l.length,A=0;h--;)l[h]===g&&++A;return A}var ra=Er(Us),ia=Er($s);function ua(l){return\"\\\\\"+Ks[l]}function fa(l,g){return l==null?u:l[g]}function Ct(l){return Gs.test(l)}function oa(l){return Fs.test(l)}function sa(l){for(var g,h=[];!(g=l.next()).done;)h.push(g.value);return h}function br(l){var g=-1,h=Array(l.size);return l.forEach(function(A,R){h[++g]=[R,A]}),h}function wu(l,g){return function(h){return l(g(h))}}function Vn(l,g){for(var h=-1,A=l.length,R=0,B=[];++h-1}function Xa(n,t){var e=this.__data__,r=Be(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}Fn.prototype.clear=za,Fn.prototype.delete=Za,Fn.prototype.get=Ja,Fn.prototype.has=Ya,Fn.prototype.set=Xa;function Mn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t=t?n:t)),n}function wn(n,t,e,r,i,o){var s,a=t&Jn,c=t&Oi,p=t&mt;if(e&&(s=i?e(n,r,i,o):e(n)),s!==u)return s;if(!H(n))return n;var d=E(n);if(d){if(s=jl(n),!a)return rn(n,s)}else{var _=k(n),w=_==ge||_==Di;if(it(n))return tf(n,a);if(_==Gn||_==yt||w&&!i){if(s=c||w?{}:xf(n),!a)return c?Hl(n,cl(s,n)):$l(n,Pu(s,n))}else{if(!N[_])return i?n:{};s=nc(n,_,a)}}o||(o=new Cn);var y=o.get(n);if(y)return y;o.set(n,s),Qf(n)?n.forEach(function(C){s.add(wn(C,t,e,C,n,o))}):Yf(n)&&n.forEach(function(C,b){s.set(b,wn(C,t,e,b,n,o))});var L=p?c?ii:ri:c?fn:X,O=d?u:L(n);return _n(O||n,function(C,b){O&&(b=C,C=n[b]),kt(s,b,wn(C,t,e,b,n,o))}),s}function hl(n){var t=X(n);return function(e){return bu(e,n,t)}}function bu(n,t,e){var r=e.length;if(n==null)return!r;for(n=M(n);r--;){var i=e[r],o=t[i],s=n[i];if(s===u&&!(i in n)||!o(s))return!1}return!0}function Du(n,t,e){if(typeof n!=\"function\")throw new vn(I);return ue(function(){n.apply(u,e)},t)}function jt(n,t,e,r){var i=-1,o=me,s=!0,a=n.length,c=[],p=t.length;if(!a)return c;e&&(t=$(t,an(e))),r?(o=Tr,s=!1):t.length>=x&&(o=Zt,s=!1,t=new ct(t));n:for(;++ii?0:i+e),r=r===u||r>i?i:S(r),r<0&&(r+=i),r=e>r?0:kf(r);e0&&e(a)?t>1?Q(a,t-1,e,r,i):Qn(i,a):r||(i[i.length]=a)}return i}var Nr=sf(),Gu=sf(!0);function bn(n,t){return n&&Nr(n,t,X)}function Ur(n,t){return n&&Gu(n,t,X)}function Fe(n,t){return Xn(t,function(e){return Kn(n[e])})}function gt(n,t){t=et(t,n);for(var e=0,r=t.length;n!=null&&et}function dl(n,t){return n!=null&&F.call(n,t)}function _l(n,t){return n!=null&&t in M(n)}function vl(n,t,e){return n>=V(t,e)&&n=120&&d.length>=120)?new ct(s&&d):u}d=n[0];var _=-1,w=a[0];n:for(;++_-1;)a!==n&&Ee.call(a,c,1),Ee.call(n,c,1);return n}function Ju(n,t){for(var e=n?t.length:0,r=e-1;e--;){var i=t[e];if(e==r||i!==o){var o=i;Hn(i)?Ee.call(n,i,1):Qr(n,i)}}return n}function Jr(n,t){return n+Pe(Ru()*(t-n+1))}function Ol(n,t,e,r){for(var i=-1,o=J(Oe((t-n)/(e||1)),0),s=h(o);o--;)s[r?o:++i]=n,n+=e;return s}function Yr(n,t){var e=\"\";if(!n||t<1||t>Yn)return e;do t%2&&(e+=n),t=Pe(t/2),t&&(n+=n);while(t);return e}function P(n,t){return ci(Tf(n,t,on),n+\"\")}function Pl(n){return Ou(Gt(n))}function bl(n,t){var e=Gt(n);return Ye(e,ht(t,0,e.length))}function ee(n,t,e,r){if(!H(n))return n;t=et(t,n);for(var i=-1,o=t.length,s=o-1,a=n;a!=null&&++ii?0:i+t),e=e>i?i:e,e<0&&(e+=i),i=t>e?0:e-t>>>0,t>>>=0;for(var o=h(i);++r>>1,s=n[o];s!==null&&!cn(s)&&(e?s<=t:s=x){var p=t?null:Zl(n);if(p)return Ae(p);s=!1,i=Zt,c=new ct}else c=t?[]:a;n:for(;++r=r?n:An(n,t,e)}var nf=Ia||function(n){return Y.clearTimeout(n)};function tf(n,t){if(t)return n.slice();var e=n.length,r=yu?yu(e):new n.constructor(e);return n.copy(r),r}function ni(n){var t=new n.constructor(n.byteLength);return new Ce(t).set(new Ce(n)),t}function Fl(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}function Ml(n){var t=new n.constructor(n.source,Mi.exec(n));return t.lastIndex=n.lastIndex,t}function Nl(n){return Vt?M(Vt.call(n)):{}}function ef(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}function rf(n,t){if(n!==t){var e=n!==u,r=n===null,i=n===n,o=cn(n),s=t!==u,a=t===null,c=t===t,p=cn(t);if(!a&&!p&&!o&&n>t||o&&s&&c&&!a&&!p||r&&s&&c||!e&&c||!i)return 1;if(!r&&!o&&!p&&n=a)return c;var p=e[r];return c*(p==\"desc\"?-1:1)}}return n.index-t.index}function uf(n,t,e,r){for(var i=-1,o=n.length,s=e.length,a=-1,c=t.length,p=J(o-s,0),d=h(c+p),_=!r;++a1?e[i-1]:u,s=i>2?e[2]:u;for(o=n.length>3&&typeof o==\"function\"?(i--,o):u,s&&tn(e[0],e[1],s)&&(o=i<3?u:o,i=1),t=M(t);++r-1?i[o?t[s]:s]:u}}function cf(n){return $n(function(t){var e=t.length,r=e,i=mn.prototype.thru;for(n&&t.reverse();r--;){var o=t[r];if(typeof o!=\"function\")throw new vn(I);if(i&&!s&&Ze(o)==\"wrapper\")var s=new mn([],!0)}for(r=s?r:e;++r1&&W.reverse(),d&&ca))return!1;var p=o.get(n),d=o.get(t);if(p&&d)return p==t&&d==n;var _=-1,w=!0,y=e&ae?new ct:u;for(o.set(n,t),o.set(t,n);++_1?\"& \":\"\")+t[r],t=t.join(e>2?\", \":\" \"),n.replace(rs,`{\n/* [wrapped with `+t+`] */\n`)}function ec(n){return E(n)||_t(n)||!!(Lu&&n&&n[Lu])}function Hn(n,t){var e=typeof n;return t=t??Yn,!!t&&(e==\"number\"||e!=\"symbol\"&&ps.test(n))&&n>-1&&n%1==0&&n0){if(++t>=Po)return arguments[0]}else t=0;return n.apply(u,arguments)}}function Ye(n,t){var e=-1,r=n.length,i=r-1;for(t=t===u?r:t;++e1?n[t-1]:u;return e=typeof e==\"function\"?(n.pop(),e):u,Gf(n,e)});function Ff(n){var t=f(n);return t.__chain__=!0,t}function gh(n,t){return t(n),n}function Xe(n,t){return t(n)}var ph=$n(function(n){var t=n.length,e=t?n[0]:0,r=this.__wrapped__,i=function(o){return Mr(o,n)};return t>1||this.__actions__.length||!(r instanceof D)||!Hn(e)?this.thru(i):(r=r.slice(e,+e+(t?1:0)),r.__actions__.push({func:Xe,args:[i],thisArg:u}),new mn(r,this.__chain__).thru(function(o){return t&&!o.length&&o.push(u),o}))});function dh(){return Ff(this)}function _h(){return new mn(this.value(),this.__chain__)}function vh(){this.__values__===u&&(this.__values__=Vf(this.value()));var n=this.__index__>=this.__values__.length,t=n?u:this.__values__[this.__index__++];return{done:n,value:t}}function mh(){return this}function wh(n){for(var t,e=this;e instanceof We;){var r=Of(e);r.__index__=0,r.__values__=u,t?i.__wrapped__=r:t=r;var i=r;e=e.__wrapped__}return i.__wrapped__=n,t}function Ah(){var n=this.__wrapped__;if(n instanceof D){var t=n;return this.__actions__.length&&(t=new D(this)),t=t.reverse(),t.__actions__.push({func:Xe,args:[hi],thisArg:u}),new mn(t,this.__chain__)}return this.thru(hi)}function xh(){return ku(this.__wrapped__,this.__actions__)}var yh=$e(function(n,t,e){F.call(n,e)?++n[e]:Nn(n,e,1)});function Ih(n,t,e){var r=E(n)?cu:gl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}function Th(n,t){var e=E(n)?Xn:Bu;return e(n,T(t,3))}var Lh=lf(Pf),Ch=lf(bf);function Rh(n,t){return Q(Qe(n,t),1)}function Eh(n,t){return Q(Qe(n,t),ot)}function Sh(n,t,e){return e=e===u?1:S(e),Q(Qe(n,t),e)}function Mf(n,t){var e=E(n)?_n:nt;return e(n,T(t,3))}function Nf(n,t){var e=E(n)?Ys:Wu;return e(n,T(t,3))}var Oh=$e(function(n,t,e){F.call(n,e)?n[e].push(t):Nn(n,e,[t])});function Ph(n,t,e,r){n=un(n)?n:Gt(n),e=e&&!r?S(e):0;var i=n.length;return e<0&&(e=J(i+e,0)),tr(n)?e<=i&&n.indexOf(t,e)>-1:!!i&&Lt(n,t,e)>-1}var bh=P(function(n,t,e){var r=-1,i=typeof t==\"function\",o=un(n)?h(n.length):[];return nt(n,function(s){o[++r]=i?sn(t,s,e):ne(s,t,e)}),o}),Dh=$e(function(n,t,e){Nn(n,e,t)});function Qe(n,t){var e=E(n)?$:$u;return e(n,T(t,3))}function Wh(n,t,e,r){return n==null?[]:(E(t)||(t=t==null?[]:[t]),e=r?u:e,E(e)||(e=e==null?[]:[e]),zu(n,t,e))}var Bh=$e(function(n,t,e){n[e?0:1].push(t)},function(){return[[],[]]});function Gh(n,t,e){var r=E(n)?Lr:du,i=arguments.length<3;return r(n,T(t,4),e,i,nt)}function Fh(n,t,e){var r=E(n)?Xs:du,i=arguments.length<3;return r(n,T(t,4),e,i,Wu)}function Mh(n,t){var e=E(n)?Xn:Bu;return e(n,je(T(t,3)))}function Nh(n){var t=E(n)?Ou:Pl;return t(n)}function Uh(n,t,e){(e?tn(n,t,e):t===u)?t=1:t=S(t);var r=E(n)?sl:bl;return r(n,t)}function $h(n){var t=E(n)?al:Wl;return t(n)}function Hh(n){if(n==null)return 0;if(un(n))return tr(n)?Rt(n):n.length;var t=k(n);return t==In||t==Tn?n.size:qr(n).length}function Kh(n,t,e){var r=E(n)?Cr:Bl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}var qh=P(function(n,t){if(n==null)return[];var e=t.length;return e>1&&tn(n,t[0],t[1])?t=[]:e>2&&tn(t[0],t[1],t[2])&&(t=[t[0]]),zu(n,Q(t,1),[])}),Ve=Ta||function(){return Y.Date.now()};function zh(n,t){if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){if(--n<1)return t.apply(this,arguments)}}function Uf(n,t,e){return t=e?u:t,t=n&&t==null?n.length:t,Un(n,Bn,u,u,u,u,t)}function $f(n,t){var e;if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){return--n>0&&(e=t.apply(this,arguments)),n<=1&&(t=u),e}}var pi=P(function(n,t,e){var r=pn;if(e.length){var i=Vn(e,Wt(pi));r|=On}return Un(n,r,t,e,i)}),Hf=P(function(n,t,e){var r=pn|ft;if(e.length){var i=Vn(e,Wt(Hf));r|=On}return Un(t,r,n,e,i)});function Kf(n,t,e){t=e?u:t;var r=Un(n,Sn,u,u,u,u,u,t);return r.placeholder=Kf.placeholder,r}function qf(n,t,e){t=e?u:t;var r=Un(n,At,u,u,u,u,u,t);return r.placeholder=qf.placeholder,r}function zf(n,t,e){var r,i,o,s,a,c,p=0,d=!1,_=!1,w=!0;if(typeof n!=\"function\")throw new vn(I);t=yn(t)||0,H(e)&&(d=!!e.leading,_=\"maxWait\"in e,o=_?J(yn(e.maxWait)||0,t):o,w=\"trailing\"in e?!!e.trailing:w);function y(z){var En=r,zn=i;return r=i=u,p=z,s=n.apply(zn,En),s}function L(z){return p=z,a=ue(b,t),d?y(z):s}function O(z){var En=z-c,zn=z-p,lo=t-En;return _?V(lo,o-zn):lo}function C(z){var En=z-c,zn=z-p;return c===u||En>=t||En<0||_&&zn>=o}function b(){var z=Ve();if(C(z))return W(z);a=ue(b,O(z))}function W(z){return a=u,w&&r?y(z):(r=i=u,s)}function hn(){a!==u&&nf(a),p=0,r=c=i=a=u}function en(){return a===u?s:W(Ve())}function gn(){var z=Ve(),En=C(z);if(r=arguments,i=this,c=z,En){if(a===u)return L(c);if(_)return nf(a),a=ue(b,t),y(c)}return a===u&&(a=ue(b,t)),s}return gn.cancel=hn,gn.flush=en,gn}var Zh=P(function(n,t){return Du(n,1,t)}),Jh=P(function(n,t,e){return Du(n,yn(t)||0,e)});function Yh(n){return Un(n,ur)}function ke(n,t){if(typeof n!=\"function\"||t!=null&&typeof t!=\"function\")throw new vn(I);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=e.cache;if(o.has(i))return o.get(i);var s=n.apply(this,r);return e.cache=o.set(i,s)||o,s};return e.cache=new(ke.Cache||Mn),e}ke.Cache=Mn;function je(n){if(typeof n!=\"function\")throw new vn(I);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Xh(n){return $f(2,n)}var Qh=Gl(function(n,t){t=t.length==1&&E(t[0])?$(t[0],an(T())):$(Q(t,1),an(T()));var e=t.length;return P(function(r){for(var i=-1,o=V(r.length,e);++i=t}),_t=Mu(function(){return arguments}())?Mu:function(n){return K(n)&&F.call(n,\"callee\")&&!Tu.call(n,\"callee\")},E=h.isArray,cg=uu?an(uu):wl;function un(n){return n!=null&&nr(n.length)&&!Kn(n)}function q(n){return K(n)&&un(n)}function hg(n){return n===!0||n===!1||K(n)&&nn(n)==Nt}var it=Ca||Ci,gg=fu?an(fu):Al;function pg(n){return K(n)&&n.nodeType===1&&!fe(n)}function dg(n){if(n==null)return!0;if(un(n)&&(E(n)||typeof n==\"string\"||typeof n.splice==\"function\"||it(n)||Bt(n)||_t(n)))return!n.length;var t=k(n);if(t==In||t==Tn)return!n.size;if(ie(n))return!qr(n).length;for(var e in n)if(F.call(n,e))return!1;return!0}function _g(n,t){return te(n,t)}function vg(n,t,e){e=typeof e==\"function\"?e:u;var r=e?e(n,t):u;return r===u?te(n,t,u,e):!!r}function _i(n){if(!K(n))return!1;var t=nn(n);return t==he||t==Uo||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!fe(n)}function mg(n){return typeof n==\"number\"&&Cu(n)}function Kn(n){if(!H(n))return!1;var t=nn(n);return t==ge||t==Di||t==No||t==Ho}function Jf(n){return typeof n==\"number\"&&n==S(n)}function nr(n){return typeof n==\"number\"&&n>-1&&n%1==0&&n<=Yn}function H(n){var t=typeof n;return n!=null&&(t==\"object\"||t==\"function\")}function K(n){return n!=null&&typeof n==\"object\"}var Yf=ou?an(ou):yl;function wg(n,t){return n===t||Kr(n,t,fi(t))}function Ag(n,t,e){return e=typeof e==\"function\"?e:u,Kr(n,t,fi(t),e)}function xg(n){return Xf(n)&&n!=+n}function yg(n){if(uc(n))throw new R(m);return Nu(n)}function Ig(n){return n===null}function Tg(n){return n==null}function Xf(n){return typeof n==\"number\"||K(n)&&nn(n)==$t}function fe(n){if(!K(n)||nn(n)!=Gn)return!1;var t=Re(n);if(t===null)return!0;var e=F.call(t,\"constructor\")&&t.constructor;return typeof e==\"function\"&&e instanceof e&&Ie.call(e)==Aa}var vi=su?an(su):Il;function Lg(n){return Jf(n)&&n>=-Yn&&n<=Yn}var Qf=au?an(au):Tl;function tr(n){return typeof n==\"string\"||!E(n)&&K(n)&&nn(n)==Kt}function cn(n){return typeof n==\"symbol\"||K(n)&&nn(n)==pe}var Bt=lu?an(lu):Ll;function Cg(n){return n===u}function Rg(n){return K(n)&&k(n)==qt}function Eg(n){return K(n)&&nn(n)==qo}var Sg=ze(zr),Og=ze(function(n,t){return n<=t});function Vf(n){if(!n)return[];if(un(n))return tr(n)?Ln(n):rn(n);if(Jt&&n[Jt])return sa(n[Jt]());var t=k(n),e=t==In?br:t==Tn?Ae:Gt;return e(n)}function qn(n){if(!n)return n===0?n:0;if(n=yn(n),n===ot||n===-ot){var t=n<0?-1:1;return t*Bo}return n===n?n:0}function S(n){var t=qn(n),e=t%1;return t===t?e?t-e:t:0}function kf(n){return n?ht(S(n),0,Pn):0}function yn(n){if(typeof n==\"number\")return n;if(cn(n))return le;if(H(n)){var t=typeof n.valueOf==\"function\"?n.valueOf():n;n=H(t)?t+\"\":t}if(typeof n!=\"string\")return n===0?n:+n;n=_u(n);var e=cs.test(n);return e||gs.test(n)?zs(n.slice(2),e?2:8):ls.test(n)?le:+n}function jf(n){return Dn(n,fn(n))}function Pg(n){return n?ht(S(n),-Yn,Yn):n===0?n:0}function G(n){return n==null?\"\":ln(n)}var bg=bt(function(n,t){if(ie(t)||un(t)){Dn(t,X(t),n);return}for(var e in t)F.call(t,e)&&kt(n,e,t[e])}),no=bt(function(n,t){Dn(t,fn(t),n)}),er=bt(function(n,t,e,r){Dn(t,fn(t),n,r)}),Dg=bt(function(n,t,e,r){Dn(t,X(t),n,r)}),Wg=$n(Mr);function Bg(n,t){var e=Pt(n);return t==null?e:Pu(e,t)}var Gg=P(function(n,t){n=M(n);var e=-1,r=t.length,i=r>2?t[2]:u;for(i&&tn(t[0],t[1],i)&&(r=1);++e1),o}),Dn(n,ii(n),e),r&&(e=wn(e,Jn|Oi|mt,Jl));for(var i=t.length;i--;)Qr(e,t[i]);return e});function np(n,t){return eo(n,je(T(t)))}var tp=$n(function(n,t){return n==null?{}:El(n,t)});function eo(n,t){if(n==null)return{};var e=$(ii(n),function(r){return[r]});return t=T(t),Zu(n,e,function(r,i){return t(r,i[0])})}function ep(n,t,e){t=et(t,n);var r=-1,i=t.length;for(i||(i=1,n=u);++rt){var r=n;n=t,t=r}if(e||n%1||t%1){var i=Ru();return V(n+i*(t-n+qs(\"1e-\"+((i+\"\").length-1))),t)}return Jr(n,t)}var gp=Dt(function(n,t,e){return t=t.toLowerCase(),n+(e?uo(t):t)});function uo(n){return Ai(G(n).toLowerCase())}function fo(n){return n=G(n),n&&n.replace(ds,ra).replace(Ws,\"\")}function pp(n,t,e){n=G(n),t=ln(t);var r=n.length;e=e===u?r:ht(S(e),0,r);var i=e;return e-=t.length,e>=0&&n.slice(e,i)==t}function dp(n){return n=G(n),n&&Xo.test(n)?n.replace(Gi,ia):n}function _p(n){return n=G(n),n&&ts.test(n)?n.replace(dr,\"\\\\$&\"):n}var vp=Dt(function(n,t,e){return n+(e?\"-\":\"\")+t.toLowerCase()}),mp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toLowerCase()}),wp=af(\"toLowerCase\");function Ap(n,t,e){n=G(n),t=S(t);var r=t?Rt(n):0;if(!t||r>=t)return n;var i=(t-r)/2;return qe(Pe(i),e)+n+qe(Oe(i),e)}function xp(n,t,e){n=G(n),t=S(t);var r=t?Rt(n):0;return t&&r>>0,e?(n=G(n),n&&(typeof t==\"string\"||t!=null&&!vi(t))&&(t=ln(t),!t&&Ct(n))?rt(Ln(n),0,e):n.split(t,e)):[]}var Ep=Dt(function(n,t,e){return n+(e?\" \":\"\")+Ai(t)});function Sp(n,t,e){return n=G(n),e=e==null?0:ht(S(e),0,n.length),t=ln(t),n.slice(e,e+t.length)==t}function Op(n,t,e){var r=f.templateSettings;e&&tn(n,t,e)&&(t=u),n=G(n),t=er({},t,r,_f);var i=er({},t.imports,r.imports,_f),o=X(i),s=Pr(i,o),a,c,p=0,d=t.interpolate||de,_=\"__p += '\",w=Dr((t.escape||de).source+\"|\"+d.source+\"|\"+(d===Fi?as:de).source+\"|\"+(t.evaluate||de).source+\"|$\",\"g\"),y=\"//# sourceURL=\"+(F.call(t,\"sourceURL\")?(t.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++Ns+\"]\")+`\n`;n.replace(w,function(C,b,W,hn,en,gn){return W||(W=hn),_+=n.slice(p,gn).replace(_s,ua),b&&(a=!0,_+=`' +\n__e(`+b+`) +\n'`),en&&(c=!0,_+=`';\n`+en+`;\n__p += '`),W&&(_+=`' +\n((__t = (`+W+`)) == null ? '' : __t) +\n'`),p=gn+C.length,C}),_+=`';\n`;var L=F.call(t,\"variable\")&&t.variable;if(!L)_=`with (obj) {\n`+_+`\n}\n`;else if(os.test(L))throw new R(j);_=(c?_.replace(zo,\"\"):_).replace(Zo,\"$1\").replace(Jo,\"$1;\"),_=\"function(\"+(L||\"obj\")+`) {\n`+(L?\"\":`obj || (obj = {});\n`)+\"var __t, __p = ''\"+(a?\", __e = _.escape\":\"\")+(c?`, __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n`:`;\n`)+_+`return __p\n}`;var O=so(function(){return B(o,y+\"return \"+_).apply(u,s)});if(O.source=_,_i(O))throw O;return O}function Pp(n){return G(n).toLowerCase()}function bp(n){return G(n).toUpperCase()}function Dp(n,t,e){if(n=G(n),n&&(e||t===u))return _u(n);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=Ln(t),o=vu(r,i),s=mu(r,i)+1;return rt(r,o,s).join(\"\")}function Wp(n,t,e){if(n=G(n),n&&(e||t===u))return n.slice(0,Au(n)+1);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=mu(r,Ln(t))+1;return rt(r,0,i).join(\"\")}function Bp(n,t,e){if(n=G(n),n&&(e||t===u))return n.replace(_r,\"\");if(!n||!(t=ln(t)))return n;var r=Ln(n),i=vu(r,Ln(t));return rt(r,i).join(\"\")}function Gp(n,t){var e=So,r=Oo;if(H(t)){var i=\"separator\"in t?t.separator:i;e=\"length\"in t?S(t.length):e,r=\"omission\"in t?ln(t.omission):r}n=G(n);var o=n.length;if(Ct(n)){var s=Ln(n);o=s.length}if(e>=o)return n;var a=e-Rt(r);if(a<1)return r;var c=s?rt(s,0,a).join(\"\"):n.slice(0,a);if(i===u)return c+r;if(s&&(a+=c.length-a),vi(i)){if(n.slice(a).search(i)){var p,d=c;for(i.global||(i=Dr(i.source,G(Mi.exec(i))+\"g\")),i.lastIndex=0;p=i.exec(d);)var _=p.index;c=c.slice(0,_===u?a:_)}}else if(n.indexOf(ln(i),a)!=a){var w=c.lastIndexOf(i);w>-1&&(c=c.slice(0,w))}return c+r}function Fp(n){return n=G(n),n&&Yo.test(n)?n.replace(Bi,ha):n}var Mp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toUpperCase()}),Ai=af(\"toUpperCase\");function oo(n,t,e){return n=G(n),t=e?u:t,t===u?oa(n)?da(n):ks(n):n.match(t)||[]}var so=P(function(n,t){try{return sn(n,u,t)}catch(e){return _i(e)?e:new R(e)}}),Np=$n(function(n,t){return _n(t,function(e){e=Wn(e),Nn(n,e,pi(n[e],n))}),n});function Up(n){var t=n==null?0:n.length,e=T();return n=t?$(n,function(r){if(typeof r[1]!=\"function\")throw new vn(I);return[e(r[0]),r[1]]}):[],P(function(r){for(var i=-1;++iYn)return[];var e=Pn,r=V(n,Pn);t=T(t),n-=Pn;for(var i=Or(r,t);++e0||t<0)?new D(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==u&&(t=S(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},D.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},D.prototype.toArray=function(){return this.take(Pn)},bn(D.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=f[r?\"take\"+(t==\"last\"?\"Right\":\"\"):t],o=r||/^find/.test(t);i&&(f.prototype[t]=function(){var s=this.__wrapped__,a=r?[1]:arguments,c=s instanceof D,p=a[0],d=c||E(s),_=function(b){var W=i.apply(f,Qn([b],a));return r&&w?W[0]:W};d&&e&&typeof p==\"function\"&&p.length!=1&&(c=d=!1);var w=this.__chain__,y=!!this.__actions__.length,L=o&&!w,O=c&&!y;if(!o&&d){s=O?s:new D(this);var C=n.apply(s,a);return C.__actions__.push({func:Xe,args:[_],thisArg:u}),new mn(C,w)}return L&&O?n.apply(this,a):(C=this.thru(_),L?r?C.value()[0]:C.value():C)})}),_n([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(n){var t=xe[n],e=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",r=/^(?:pop|shift)$/.test(n);f.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(E(o)?o:[],i)}return this[e](function(s){return t.apply(E(s)?s:[],i)})}}),bn(D.prototype,function(n,t){var e=f[t];if(e){var r=e.name+\"\";F.call(Ot,r)||(Ot[r]=[]),Ot[r].push({name:t,func:e})}}),Ot[He(u,ft).name]=[{name:\"wrapper\",func:u}],D.prototype.clone=Fa,D.prototype.reverse=Ma,D.prototype.value=Na,f.prototype.at=ph,f.prototype.chain=dh,f.prototype.commit=_h,f.prototype.next=vh,f.prototype.plant=wh,f.prototype.reverse=Ah,f.prototype.toJSON=f.prototype.valueOf=f.prototype.value=xh,f.prototype.first=f.prototype.head,Jt&&(f.prototype[Jt]=mh),f},kn=_a();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?(Y._=kn,define(function(){return kn})):st?((st.exports=kn)._=kn,yr._=kn):Y._=kn}).call(Ft)});var jd={};Od(jd,{albIpMonitor:()=>Ao,albTargetRecordMonitor:()=>Ro});module.exports=Pd(jd);var go=ho(require(\"dns\")),po=require(\"@aws-sdk/lib-dynamodb\"),_o=require(\"@aws-sdk/client-dynamodb\"),vo=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),Ri=process.env.LOOKUP_TABLE??\"\",mo=po.DynamoDBDocument.from(new _o.DynamoDB),wo=new vo.ElasticLoadBalancingV2({logger:console}),bd=async u=>{console.log(`Scanning route lookup table ${Ri}`);let v={TableName:u},x=[],m;do m=await mo.scan(v),m.Items?.forEach(I=>x.push(I)),v.ExclusiveStartKey=m.LastEvaluatedKey;while(typeof m.LastEvaluatedKey<\"u\");return x},Dd=async(u,v,x)=>{let m=v.map(j=>({Id:j,Port:x,AvailabilityZone:\"all\"})),I={TargetGroupArn:u,Targets:m};return wo.registerTargets(I)},Wd=async(u,v)=>{console.log(`Deregistering IP addresses ${JSON.stringify(v)} from target group ${u}`);let x=v.map(I=>({Id:I})),m={TargetGroupArn:u,Targets:x};return wo.deregisterTargets(m)},Bd=async u=>new Promise((v,x)=>{go.lookup(u,{all:!0,family:4},(m,I)=>{m?x(m):v(I.map(j=>j.address).sort())})}),Gd=(u,v)=>{let x=u.indexOf(v);return x>-1&&u.splice(x,1),u},Fd=async u=>{let v={TableName:Ri,Item:u};return mo.put(v)},Ao=async(u,v)=>{let x=await bd(Ri)??[];for(let m of x)try{m.dnsLookupIps=[];try{m.dnsLookupIps=await Bd(m.targetAlbDnsName)}catch(I){console.log(I)}m.ipAddList=m.dnsLookupIps?.filter(I=>!m.metadata?.targetGroupIpAddresses?.includes(I))??[],m.ipRemoveList=m.metadata?.targetGroupIpAddresses?.filter(I=>!m.dnsLookupIps?.includes(I))??[],m.ipAddList?.length>0?(console.log(`Registering new ips ${JSON.stringify(m.ipAddList)} to target ${m.metadata.targetGroupArn} with port ${m.targetGroupDestinationPort}`),await Dd(m.metadata.targetGroupArn,m.ipAddList,m.targetGroupDestinationPort),m.metadata.targetGroupIpAddresses.push(...m.ipAddList)):console.log(\"No new Ip addresses to register\"),m.ipRemoveList?.length>0?(console.log(`Deregistering old ip addresses ${JSON.stringify(m.ipRemoveList)} from target group targetGroupRecord.metadata.targetGroupArn`),await Wd(m.metadata.targetGroupArn,m.ipRemoveList),m.ipRemoveList?.forEach(I=>{console.log(m.metadata.targetGroupIpAddresses,I),m.metadata.targetGroupIpAddresses=Gd(m.metadata.targetGroupIpAddresses,I)})):console.log(\"No old ip addresses to deregister\"),delete m.ipAddList,delete m.ipRemoveList,delete m.dnsLookupIps,console.log(\"Writing record to DDB table \",JSON.stringify(m,null,4)),await Fd(m)}catch(I){console.log(\"There was a problem updating the record \",JSON.stringify(m,null,4)),console.log(I)}return\"Done\"};var yo=require(\"@aws-sdk/lib-dynamodb\"),Io=require(\"@aws-sdk/client-dynamodb\"),Ei=require(\"@aws-sdk/util-dynamodb\"),ir=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),vt=ho(xo()),Zn=new ir.ElasticLoadBalancingV2,Md=yo.DynamoDBDocument.from(new Io.DynamoDB),Nd=process.env.LOOKUP_TABLE||\"\",Ud=u=>new Promise(v=>{setTimeout(v,u)}),$d=async(u,v,x,m)=>{let I={Name:u,Port:v,Protocol:m,VpcId:x,TargetType:ir.TargetTypeEnum.IP};return Zn.createTargetGroup(I)},Hd=async u=>{let v={Attributes:[{Key:\"stickiness.enabled\",Value:\"true\"}],TargetGroupArn:u};return Zn.modifyTargetGroupAttributes(v)},To=async(u,v)=>{let x={ListenerArn:v};return((await Zn.describeRules(x)).Rules?.filter(j=>j.Priority===u.toString())||[]).length===0},Lo=async u=>{try{let v={ListenerArns:[u]};return await Zn.describeListeners(v),Promise.resolve(!0)}catch(v){return console.log(v),Promise.resolve(!1)}},Kd=async(u,v,x,m,I)=>{console.log(\"trying to create listener rule\"),console.log(x,v,u,m,I);let j={Actions:[{TargetGroupArn:m,Type:\"forward\"}],ListenerArn:u,Priority:I,Conditions:[]};if(v?.length>0){let ut={Field:\"path-pattern\",Values:v};j.Conditions?.push(ut)}if(x?.length>0){let ut={Field:\"host-header\",Values:x};j.Conditions?.push(ut)}return Zn.createRule(j)},qd=async(u,v,x,m)=>{let I={Actions:[{TargetGroupArn:m,Type:\"forward\"}],RuleArn:u,Conditions:[]};if(v?.length>0){let j={Field:\"path-pattern\",Values:v};I?.Conditions?.push(j)}if(x?.length>0){let j={Field:\"host-header\",Values:x};I?.Conditions?.push(j)}return Zn.modifyRule(I)},zd=async u=>{let v={RuleArn:u};return Zn.deleteRule(v)},Zd=async u=>{let v={TargetGroupArn:u};return Zn.deleteTargetGroup(v)},Jd=async(u,v)=>{let x={RulePriorities:[{Priority:v,RuleArn:u}]};return Zn.setRulePriorities(x)},Yd=async(u,v)=>{let x={TableName:u,Item:v};return Md.put(x)},Xd=(u,v)=>{let x={vpcId:u.vpcId,destinationPort:u.targetGroupDestinationPort,protocol:u.targetGroupProtocol},m={vpcId:v.vpcId,destinationPort:v.targetGroupDestinationPort,protocol:v.targetGroupProtocol};return!vt.isEqual(x,m)},Qd=(u,v)=>{let x={sourceListenerArn:u.rule.sourceListenerArn,priority:u.rule.condition.priority,paths:u.rule.condition.paths?.sort(),hosts:u.rule.condition.hosts?.sort()},m={sourceListenerArn:v.rule.sourceListenerArn,priority:v.rule.condition.priority,paths:v.rule.condition.paths?.sort(),hosts:v.rule.condition.hosts?.sort()};return!vt.isEqual(x,m)},Vd=(u,v)=>{let x=u.rule.condition.priority,m=v.rule.condition.priority;return x!==m},Si=async u=>{console.log(\"Record creation detected.\");try{if(!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);if(console.log(\"Checking if priority is valid\"),!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match. Exiting`);let x=(await $d(u.id,u.targetGroupDestinationPort,u.vpcId,u.targetGroupProtocol))?.TargetGroups?.[0].TargetGroupArn??\"\";await Hd(x);let I=(await Kd(u.rule.sourceListenerArn,u.rule.condition.paths,u.rule.condition.hosts,x,u.rule.condition.priority))?.Rules?.[0].RuleArn??\"\";if(!x||!I)throw new Error(`There was an error getting the target group arn or listener rule arn. \nTarget Group Arn: ${x}\nRule Arn: ${I}`);return u.metadata={targetGroupArn:x,ruleArn:I,targetGroupIpAddresses:[]},await Yd(Nd,u),console.log(\"Added metadata to table\"),u}catch(v){throw console.log(\"There was a problem creating resources for the following record\",JSON.stringify(u,null,4)),v}},Co=async u=>{try{console.log(`Deleting listener rule and target group for ${u.id}`),await zd(u.metadata.ruleArn),console.log(\"Deleted listener rule.\")}catch(v){console.log(v),console.log(\"Could not delete listener rule for record. Continuing...\",JSON.stringify(u,null,4))}try{await Zd(u.metadata.targetGroupArn),console.log(\"Deleted target group\");return}catch(v){console.log(\"Could not delete target group for record\",JSON.stringify(u,null,4)),console.log(v)}},kd=async(u,v)=>{try{if(console.log(`The record with id ${u.id} was updated. Performing comparison.`),!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);let x=vt.cloneDeep(u),m=vt.cloneDeep(v);if(delete x.metadata,delete m.metadata,vt.isEqual(x,m)){console.log(`Update Record handler found no changes made for record with Id ${u.id}`);return}if(!v.metadata){console.log(\"No previous metadata detected for record. Creating metadata based off of new entry\"),await Si(u);return}if(Qd(v,u)&&(console.log(`Detected a listener rule change. Modifying rule ${u.metadata.ruleArn}`),await qd(u.metadata.ruleArn,u.rule.condition.paths,u.rule.condition.hosts,u.metadata.targetGroupArn)),Vd(v,u)){if(!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match.`);await Jd(u.metadata.ruleArn,u.rule.condition.priority)}Xd(v,u)&&(console.log(`Detected a target group change. deleting target group ${u.metadata.targetGroupArn} and creating a new target group`),await Co(u),await Ud(1e4),await Si(u))}catch(x){throw console.log(\"There was a problem updating a target group or listener rule for the records:\"),console.log(\"Old Record: \",JSON.stringify(v,null,4)),console.log(\"New Record: \",JSON.stringify(u,null,4)),x}},Ro=async(u,v)=>{console.log(JSON.stringify(u,null,2));let x=u.Records.map(m=>(m.dynamodb.OldImage&&(m.dynamodb.OldImage=(0,Ei.unmarshall)(m.dynamodb.OldImage)),m.dynamodb.NewImage&&(m.dynamodb.NewImage=(0,Ei.unmarshall)(m.dynamodb.NewImage)),m));for(let m of x)m.eventName===\"INSERT\"&&await Si(m.dynamodb.NewImage),m.eventName===\"MODIFY\"&&await kd(m.dynamodb.NewImage,m.dynamodb.OldImage),m.eventName===\"REMOVE\"&&await Co(m.dynamodb.OldImage)};0&&(module.exports={albIpMonitor,albTargetRecordMonitor});\n/*! Bundled license information:\n\nlodash/lodash.js:\n (**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n *)\n*/\n" + "ZipFile": "\"use strict\";var Td=Object.create;var ir=Object.defineProperty;var Ld=Object.getOwnPropertyDescriptor;var Cd=Object.getOwnPropertyNames;var Ed=Object.getPrototypeOf,Rd=Object.prototype.hasOwnProperty;var Sd=(u,v)=>()=>(v||u((v={exports:{}}).exports,v),v.exports),Od=(u,v)=>{for(var y in v)ir(u,y,{get:v[y],enumerable:!0})},co=(u,v,y,m)=>{if(v&&typeof v==\"object\"||typeof v==\"function\")for(let I of Cd(v))!Rd.call(u,I)&&I!==y&&ir(u,I,{get:()=>v[I],enumerable:!(m=Ld(v,I))||m.enumerable});return u};var ho=(u,v,y)=>(y=u!=null?Td(Ed(u)):{},co(v||!u||!u.__esModule?ir(y,\"default\",{value:u,enumerable:!0}):y,u)),Pd=u=>co(ir({},\"__esModule\",{value:!0}),u);var yo=Sd((Mt,se)=>{(function(){var u,v=\"4.17.21\",y=200,m=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",I=\"Expected a function\",Q=\"Invalid `variable` option passed into `_.template`\",ut=\"__lodash_hash_undefined__\",Ro=500,ae=\"__lodash_placeholder__\",Jn=1,Oi=2,mt=4,wt=1,le=2,pn=1,ft=2,Pi=4,Sn=8,At=16,On=32,yt=64,Bn=128,Nt=256,ur=512,So=30,Oo=\"...\",Po=800,bo=16,bi=1,Do=2,Go=3,ot=1/0,Yn=9007199254740991,Wo=17976931348623157e292,ce=0/0,Pn=4294967295,Bo=Pn-1,Mo=Pn>>>1,Fo=[[\"ary\",Bn],[\"bind\",pn],[\"bindKey\",ft],[\"curry\",Sn],[\"curryRight\",At],[\"flip\",ur],[\"partial\",On],[\"partialRight\",yt],[\"rearg\",Nt]],xt=\"[object Arguments]\",he=\"[object Array]\",No=\"[object AsyncFunction]\",Ut=\"[object Boolean]\",$t=\"[object Date]\",Uo=\"[object DOMException]\",ge=\"[object Error]\",pe=\"[object Function]\",Di=\"[object GeneratorFunction]\",In=\"[object Map]\",Ht=\"[object Number]\",$o=\"[object Null]\",Mn=\"[object Object]\",Gi=\"[object Promise]\",Ho=\"[object Proxy]\",Kt=\"[object RegExp]\",Tn=\"[object Set]\",qt=\"[object String]\",de=\"[object Symbol]\",Ko=\"[object Undefined]\",zt=\"[object WeakMap]\",qo=\"[object WeakSet]\",Zt=\"[object ArrayBuffer]\",It=\"[object DataView]\",fr=\"[object Float32Array]\",or=\"[object Float64Array]\",sr=\"[object Int8Array]\",ar=\"[object Int16Array]\",lr=\"[object Int32Array]\",cr=\"[object Uint8Array]\",hr=\"[object Uint8ClampedArray]\",gr=\"[object Uint16Array]\",pr=\"[object Uint32Array]\",zo=/\\b__p \\+= '';/g,Zo=/\\b(__p \\+=) '' \\+/g,Jo=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,Wi=/&(?:amp|lt|gt|quot|#39);/g,Bi=/[&<>\"']/g,Yo=RegExp(Wi.source),Xo=RegExp(Bi.source),Qo=/<%-([\\s\\S]+?)%>/g,Vo=/<%([\\s\\S]+?)%>/g,Mi=/<%=([\\s\\S]+?)%>/g,ko=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,jo=/^\\w*$/,ns=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,dr=/[\\\\^$.*+?()[\\]{}|]/g,ts=RegExp(dr.source),_r=/^\\s+/,es=/\\s/,rs=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,is=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,us=/,? & /,fs=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,os=/[()=,{}\\[\\]\\/\\s]/,ss=/\\\\(\\\\)?/g,as=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Fi=/\\w*$/,ls=/^[-+]0x[0-9a-f]+$/i,cs=/^0b[01]+$/i,hs=/^\\[object .+?Constructor\\]$/,gs=/^0o[0-7]+$/i,ps=/^(?:0|[1-9]\\d*)$/,ds=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,_e=/($^)/,_s=/['\\n\\r\\u2028\\u2029\\\\]/g,ve=\"\\\\ud800-\\\\udfff\",vs=\"\\\\u0300-\\\\u036f\",ms=\"\\\\ufe20-\\\\ufe2f\",ws=\"\\\\u20d0-\\\\u20ff\",Ni=vs+ms+ws,Ui=\"\\\\u2700-\\\\u27bf\",$i=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",As=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",ys=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",xs=\"\\\\u2000-\\\\u206f\",Is=\" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",Hi=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",Ki=\"\\\\ufe0e\\\\ufe0f\",qi=As+ys+xs+Is,vr=\"['\\u2019]\",Ts=\"[\"+ve+\"]\",zi=\"[\"+qi+\"]\",me=\"[\"+Ni+\"]\",Zi=\"\\\\d+\",Ls=\"[\"+Ui+\"]\",Ji=\"[\"+$i+\"]\",Yi=\"[^\"+ve+qi+Zi+Ui+$i+Hi+\"]\",mr=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",Cs=\"(?:\"+me+\"|\"+mr+\")\",Xi=\"[^\"+ve+\"]\",wr=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Ar=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",Tt=\"[\"+Hi+\"]\",Qi=\"\\\\u200d\",Vi=\"(?:\"+Ji+\"|\"+Yi+\")\",Es=\"(?:\"+Tt+\"|\"+Yi+\")\",ki=\"(?:\"+vr+\"(?:d|ll|m|re|s|t|ve))?\",ji=\"(?:\"+vr+\"(?:D|LL|M|RE|S|T|VE))?\",nu=Cs+\"?\",tu=\"[\"+Ki+\"]?\",Rs=\"(?:\"+Qi+\"(?:\"+[Xi,wr,Ar].join(\"|\")+\")\"+tu+nu+\")*\",Ss=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",Os=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",eu=tu+nu+Rs,Ps=\"(?:\"+[Ls,wr,Ar].join(\"|\")+\")\"+eu,bs=\"(?:\"+[Xi+me+\"?\",me,wr,Ar,Ts].join(\"|\")+\")\",Ds=RegExp(vr,\"g\"),Gs=RegExp(me,\"g\"),yr=RegExp(mr+\"(?=\"+mr+\")|\"+bs+eu,\"g\"),Ws=RegExp([Tt+\"?\"+Ji+\"+\"+ki+\"(?=\"+[zi,Tt,\"$\"].join(\"|\")+\")\",Es+\"+\"+ji+\"(?=\"+[zi,Tt+Vi,\"$\"].join(\"|\")+\")\",Tt+\"?\"+Vi+\"+\"+ki,Tt+\"+\"+ji,Os,Ss,Zi,Ps].join(\"|\"),\"g\"),Bs=RegExp(\"[\"+Qi+ve+Ni+Ki+\"]\"),Ms=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Fs=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Ns=-1,U={};U[fr]=U[or]=U[sr]=U[ar]=U[lr]=U[cr]=U[hr]=U[gr]=U[pr]=!0,U[xt]=U[he]=U[Zt]=U[Ut]=U[It]=U[$t]=U[ge]=U[pe]=U[In]=U[Ht]=U[Mn]=U[Kt]=U[Tn]=U[qt]=U[zt]=!1;var N={};N[xt]=N[he]=N[Zt]=N[It]=N[Ut]=N[$t]=N[fr]=N[or]=N[sr]=N[ar]=N[lr]=N[In]=N[Ht]=N[Mn]=N[Kt]=N[Tn]=N[qt]=N[de]=N[cr]=N[hr]=N[gr]=N[pr]=!0,N[ge]=N[pe]=N[zt]=!1;var Us={\\u00C0:\"A\",\\u00C1:\"A\",\\u00C2:\"A\",\\u00C3:\"A\",\\u00C4:\"A\",\\u00C5:\"A\",\\u00E0:\"a\",\\u00E1:\"a\",\\u00E2:\"a\",\\u00E3:\"a\",\\u00E4:\"a\",\\u00E5:\"a\",\\u00C7:\"C\",\\u00E7:\"c\",\\u00D0:\"D\",\\u00F0:\"d\",\\u00C8:\"E\",\\u00C9:\"E\",\\u00CA:\"E\",\\u00CB:\"E\",\\u00E8:\"e\",\\u00E9:\"e\",\\u00EA:\"e\",\\u00EB:\"e\",\\u00CC:\"I\",\\u00CD:\"I\",\\u00CE:\"I\",\\u00CF:\"I\",\\u00EC:\"i\",\\u00ED:\"i\",\\u00EE:\"i\",\\u00EF:\"i\",\\u00D1:\"N\",\\u00F1:\"n\",\\u00D2:\"O\",\\u00D3:\"O\",\\u00D4:\"O\",\\u00D5:\"O\",\\u00D6:\"O\",\\u00D8:\"O\",\\u00F2:\"o\",\\u00F3:\"o\",\\u00F4:\"o\",\\u00F5:\"o\",\\u00F6:\"o\",\\u00F8:\"o\",\\u00D9:\"U\",\\u00DA:\"U\",\\u00DB:\"U\",\\u00DC:\"U\",\\u00F9:\"u\",\\u00FA:\"u\",\\u00FB:\"u\",\\u00FC:\"u\",\\u00DD:\"Y\",\\u00FD:\"y\",\\u00FF:\"y\",\\u00C6:\"Ae\",\\u00E6:\"ae\",\\u00DE:\"Th\",\\u00FE:\"th\",\\u00DF:\"ss\",\\u0100:\"A\",\\u0102:\"A\",\\u0104:\"A\",\\u0101:\"a\",\\u0103:\"a\",\\u0105:\"a\",\\u0106:\"C\",\\u0108:\"C\",\\u010A:\"C\",\\u010C:\"C\",\\u0107:\"c\",\\u0109:\"c\",\\u010B:\"c\",\\u010D:\"c\",\\u010E:\"D\",\\u0110:\"D\",\\u010F:\"d\",\\u0111:\"d\",\\u0112:\"E\",\\u0114:\"E\",\\u0116:\"E\",\\u0118:\"E\",\\u011A:\"E\",\\u0113:\"e\",\\u0115:\"e\",\\u0117:\"e\",\\u0119:\"e\",\\u011B:\"e\",\\u011C:\"G\",\\u011E:\"G\",\\u0120:\"G\",\\u0122:\"G\",\\u011D:\"g\",\\u011F:\"g\",\\u0121:\"g\",\\u0123:\"g\",\\u0124:\"H\",\\u0126:\"H\",\\u0125:\"h\",\\u0127:\"h\",\\u0128:\"I\",\\u012A:\"I\",\\u012C:\"I\",\\u012E:\"I\",\\u0130:\"I\",\\u0129:\"i\",\\u012B:\"i\",\\u012D:\"i\",\\u012F:\"i\",\\u0131:\"i\",\\u0134:\"J\",\\u0135:\"j\",\\u0136:\"K\",\\u0137:\"k\",\\u0138:\"k\",\\u0139:\"L\",\\u013B:\"L\",\\u013D:\"L\",\\u013F:\"L\",\\u0141:\"L\",\\u013A:\"l\",\\u013C:\"l\",\\u013E:\"l\",\\u0140:\"l\",\\u0142:\"l\",\\u0143:\"N\",\\u0145:\"N\",\\u0147:\"N\",\\u014A:\"N\",\\u0144:\"n\",\\u0146:\"n\",\\u0148:\"n\",\\u014B:\"n\",\\u014C:\"O\",\\u014E:\"O\",\\u0150:\"O\",\\u014D:\"o\",\\u014F:\"o\",\\u0151:\"o\",\\u0154:\"R\",\\u0156:\"R\",\\u0158:\"R\",\\u0155:\"r\",\\u0157:\"r\",\\u0159:\"r\",\\u015A:\"S\",\\u015C:\"S\",\\u015E:\"S\",\\u0160:\"S\",\\u015B:\"s\",\\u015D:\"s\",\\u015F:\"s\",\\u0161:\"s\",\\u0162:\"T\",\\u0164:\"T\",\\u0166:\"T\",\\u0163:\"t\",\\u0165:\"t\",\\u0167:\"t\",\\u0168:\"U\",\\u016A:\"U\",\\u016C:\"U\",\\u016E:\"U\",\\u0170:\"U\",\\u0172:\"U\",\\u0169:\"u\",\\u016B:\"u\",\\u016D:\"u\",\\u016F:\"u\",\\u0171:\"u\",\\u0173:\"u\",\\u0174:\"W\",\\u0175:\"w\",\\u0176:\"Y\",\\u0177:\"y\",\\u0178:\"Y\",\\u0179:\"Z\",\\u017B:\"Z\",\\u017D:\"Z\",\\u017A:\"z\",\\u017C:\"z\",\\u017E:\"z\",\\u0132:\"IJ\",\\u0133:\"ij\",\\u0152:\"Oe\",\\u0153:\"oe\",\\u0149:\"'n\",\\u017F:\"s\"},$s={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},Hs={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"},Ks={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},qs=parseFloat,zs=parseInt,ru=typeof global==\"object\"&&global&&global.Object===Object&&global,Zs=typeof self==\"object\"&&self&&self.Object===Object&&self,Y=ru||Zs||Function(\"return this\")(),xr=typeof Mt==\"object\"&&Mt&&!Mt.nodeType&&Mt,st=xr&&typeof se==\"object\"&&se&&!se.nodeType&&se,iu=st&&st.exports===xr,Ir=iu&&ru.process,dn=function(){try{var l=st&&st.require&&st.require(\"util\").types;return l||Ir&&Ir.binding&&Ir.binding(\"util\")}catch{}}(),uu=dn&&dn.isArrayBuffer,fu=dn&&dn.isDate,ou=dn&&dn.isMap,su=dn&&dn.isRegExp,au=dn&&dn.isSet,lu=dn&&dn.isTypedArray;function sn(l,g,h){switch(h.length){case 0:return l.call(g);case 1:return l.call(g,h[0]);case 2:return l.call(g,h[0],h[1]);case 3:return l.call(g,h[0],h[1],h[2])}return l.apply(g,h)}function Js(l,g,h,A){for(var E=-1,W=l==null?0:l.length;++E-1}function Tr(l,g,h){for(var A=-1,E=l==null?0:l.length;++A-1;);return h}function mu(l,g){for(var h=l.length;h--&&Lt(g,l[h],0)>-1;);return h}function ea(l,g){for(var h=l.length,A=0;h--;)l[h]===g&&++A;return A}var ra=Rr(Us),ia=Rr($s);function ua(l){return\"\\\\\"+Ks[l]}function fa(l,g){return l==null?u:l[g]}function Ct(l){return Bs.test(l)}function oa(l){return Ms.test(l)}function sa(l){for(var g,h=[];!(g=l.next()).done;)h.push(g.value);return h}function br(l){var g=-1,h=Array(l.size);return l.forEach(function(A,E){h[++g]=[E,A]}),h}function wu(l,g){return function(h){return l(g(h))}}function Vn(l,g){for(var h=-1,A=l.length,E=0,W=[];++h-1}function Xa(n,t){var e=this.__data__,r=Be(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}Fn.prototype.clear=za,Fn.prototype.delete=Za,Fn.prototype.get=Ja,Fn.prototype.has=Ya,Fn.prototype.set=Xa;function Nn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t=t?n:t)),n}function wn(n,t,e,r,i,o){var s,a=t&Jn,c=t&Oi,p=t&mt;if(e&&(s=i?e(n,r,i,o):e(n)),s!==u)return s;if(!H(n))return n;var d=R(n);if(d){if(s=jl(n),!a)return rn(n,s)}else{var _=j(n),w=_==pe||_==Di;if(it(n))return tf(n,a);if(_==Mn||_==xt||w&&!i){if(s=c||w?{}:yf(n),!a)return c?Hl(n,cl(s,n)):$l(n,Pu(s,n))}else{if(!N[_])return i?n:{};s=nc(n,_,a)}}o||(o=new Cn);var x=o.get(n);if(x)return x;o.set(n,s),Qf(n)?n.forEach(function(C){s.add(wn(C,t,e,C,n,o))}):Yf(n)&&n.forEach(function(C,b){s.set(b,wn(C,t,e,b,n,o))});var L=p?c?ii:ri:c?fn:X,O=d?u:L(n);return _n(O||n,function(C,b){O&&(b=C,C=n[b]),jt(s,b,wn(C,t,e,b,n,o))}),s}function hl(n){var t=X(n);return function(e){return bu(e,n,t)}}function bu(n,t,e){var r=e.length;if(n==null)return!r;for(n=F(n);r--;){var i=e[r],o=t[i],s=n[i];if(s===u&&!(i in n)||!o(s))return!1}return!0}function Du(n,t,e){if(typeof n!=\"function\")throw new vn(I);return fe(function(){n.apply(u,e)},t)}function ne(n,t,e,r){var i=-1,o=we,s=!0,a=n.length,c=[],p=t.length;if(!a)return c;e&&(t=$(t,an(e))),r?(o=Tr,s=!1):t.length>=y&&(o=Jt,s=!1,t=new ct(t));n:for(;++ii?0:i+e),r=r===u||r>i?i:S(r),r<0&&(r+=i),r=e>r?0:kf(r);e0&&e(a)?t>1?V(a,t-1,e,r,i):Qn(i,a):r||(i[i.length]=a)}return i}var Nr=sf(),Bu=sf(!0);function bn(n,t){return n&&Nr(n,t,X)}function Ur(n,t){return n&&Bu(n,t,X)}function Fe(n,t){return Xn(t,function(e){return qn(n[e])})}function gt(n,t){t=et(t,n);for(var e=0,r=t.length;n!=null&&et}function dl(n,t){return n!=null&&M.call(n,t)}function _l(n,t){return n!=null&&t in F(n)}function vl(n,t,e){return n>=k(t,e)&&n=120&&d.length>=120)?new ct(s&&d):u}d=n[0];var _=-1,w=a[0];n:for(;++_-1;)a!==n&&Se.call(a,c,1),Se.call(n,c,1);return n}function Ju(n,t){for(var e=n?t.length:0,r=e-1;e--;){var i=t[e];if(e==r||i!==o){var o=i;Kn(i)?Se.call(n,i,1):Qr(n,i)}}return n}function Jr(n,t){return n+be(Eu()*(t-n+1))}function Ol(n,t,e,r){for(var i=-1,o=J(Pe((t-n)/(e||1)),0),s=h(o);o--;)s[r?o:++i]=n,n+=e;return s}function Yr(n,t){var e=\"\";if(!n||t<1||t>Yn)return e;do t%2&&(e+=n),t=be(t/2),t&&(n+=n);while(t);return e}function P(n,t){return ci(Tf(n,t,on),n+\"\")}function Pl(n){return Ou(Bt(n))}function bl(n,t){var e=Bt(n);return Xe(e,ht(t,0,e.length))}function re(n,t,e,r){if(!H(n))return n;t=et(t,n);for(var i=-1,o=t.length,s=o-1,a=n;a!=null&&++ii?0:i+t),e=e>i?i:e,e<0&&(e+=i),i=t>e?0:e-t>>>0,t>>>=0;for(var o=h(i);++r>>1,s=n[o];s!==null&&!cn(s)&&(e?s<=t:s=y){var p=t?null:Zl(n);if(p)return ye(p);s=!1,i=Jt,c=new ct}else c=t?[]:a;n:for(;++r=r?n:An(n,t,e)}var nf=Ia||function(n){return Y.clearTimeout(n)};function tf(n,t){if(t)return n.slice();var e=n.length,r=xu?xu(e):new n.constructor(e);return n.copy(r),r}function ni(n){var t=new n.constructor(n.byteLength);return new Ee(t).set(new Ee(n)),t}function Ml(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}function Fl(n){var t=new n.constructor(n.source,Fi.exec(n));return t.lastIndex=n.lastIndex,t}function Nl(n){return kt?F(kt.call(n)):{}}function ef(n,t){var e=t?ni(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}function rf(n,t){if(n!==t){var e=n!==u,r=n===null,i=n===n,o=cn(n),s=t!==u,a=t===null,c=t===t,p=cn(t);if(!a&&!p&&!o&&n>t||o&&s&&c&&!a&&!p||r&&s&&c||!e&&c||!i)return 1;if(!r&&!o&&!p&&n=a)return c;var p=e[r];return c*(p==\"desc\"?-1:1)}}return n.index-t.index}function uf(n,t,e,r){for(var i=-1,o=n.length,s=e.length,a=-1,c=t.length,p=J(o-s,0),d=h(c+p),_=!r;++a1?e[i-1]:u,s=i>2?e[2]:u;for(o=n.length>3&&typeof o==\"function\"?(i--,o):u,s&&tn(e[0],e[1],s)&&(o=i<3?u:o,i=1),t=F(t);++r-1?i[o?t[s]:s]:u}}function cf(n){return Hn(function(t){var e=t.length,r=e,i=mn.prototype.thru;for(n&&t.reverse();r--;){var o=t[r];if(typeof o!=\"function\")throw new vn(I);if(i&&!s&&Je(o)==\"wrapper\")var s=new mn([],!0)}for(r=s?r:e;++r1&&G.reverse(),d&&ca))return!1;var p=o.get(n),d=o.get(t);if(p&&d)return p==t&&d==n;var _=-1,w=!0,x=e&le?new ct:u;for(o.set(n,t),o.set(t,n);++_1?\"& \":\"\")+t[r],t=t.join(e>2?\", \":\" \"),n.replace(rs,`{\n/* [wrapped with `+t+`] */\n`)}function ec(n){return R(n)||_t(n)||!!(Lu&&n&&n[Lu])}function Kn(n,t){var e=typeof n;return t=t??Yn,!!t&&(e==\"number\"||e!=\"symbol\"&&ps.test(n))&&n>-1&&n%1==0&&n0){if(++t>=Po)return arguments[0]}else t=0;return n.apply(u,arguments)}}function Xe(n,t){var e=-1,r=n.length,i=r-1;for(t=t===u?r:t;++e1?n[t-1]:u;return e=typeof e==\"function\"?(n.pop(),e):u,Bf(n,e)});function Mf(n){var t=f(n);return t.__chain__=!0,t}function gh(n,t){return t(n),n}function Qe(n,t){return t(n)}var ph=Hn(function(n){var t=n.length,e=t?n[0]:0,r=this.__wrapped__,i=function(o){return Fr(o,n)};return t>1||this.__actions__.length||!(r instanceof D)||!Kn(e)?this.thru(i):(r=r.slice(e,+e+(t?1:0)),r.__actions__.push({func:Qe,args:[i],thisArg:u}),new mn(r,this.__chain__).thru(function(o){return t&&!o.length&&o.push(u),o}))});function dh(){return Mf(this)}function _h(){return new mn(this.value(),this.__chain__)}function vh(){this.__values__===u&&(this.__values__=Vf(this.value()));var n=this.__index__>=this.__values__.length,t=n?u:this.__values__[this.__index__++];return{done:n,value:t}}function mh(){return this}function wh(n){for(var t,e=this;e instanceof We;){var r=Of(e);r.__index__=0,r.__values__=u,t?i.__wrapped__=r:t=r;var i=r;e=e.__wrapped__}return i.__wrapped__=n,t}function Ah(){var n=this.__wrapped__;if(n instanceof D){var t=n;return this.__actions__.length&&(t=new D(this)),t=t.reverse(),t.__actions__.push({func:Qe,args:[hi],thisArg:u}),new mn(t,this.__chain__)}return this.thru(hi)}function yh(){return ku(this.__wrapped__,this.__actions__)}var xh=He(function(n,t,e){M.call(n,e)?++n[e]:Un(n,e,1)});function Ih(n,t,e){var r=R(n)?cu:gl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}function Th(n,t){var e=R(n)?Xn:Wu;return e(n,T(t,3))}var Lh=lf(Pf),Ch=lf(bf);function Eh(n,t){return V(Ve(n,t),1)}function Rh(n,t){return V(Ve(n,t),ot)}function Sh(n,t,e){return e=e===u?1:S(e),V(Ve(n,t),e)}function Ff(n,t){var e=R(n)?_n:nt;return e(n,T(t,3))}function Nf(n,t){var e=R(n)?Ys:Gu;return e(n,T(t,3))}var Oh=He(function(n,t,e){M.call(n,e)?n[e].push(t):Un(n,e,[t])});function Ph(n,t,e,r){n=un(n)?n:Bt(n),e=e&&!r?S(e):0;var i=n.length;return e<0&&(e=J(i+e,0)),er(n)?e<=i&&n.indexOf(t,e)>-1:!!i&&Lt(n,t,e)>-1}var bh=P(function(n,t,e){var r=-1,i=typeof t==\"function\",o=un(n)?h(n.length):[];return nt(n,function(s){o[++r]=i?sn(t,s,e):te(s,t,e)}),o}),Dh=He(function(n,t,e){Un(n,e,t)});function Ve(n,t){var e=R(n)?$:$u;return e(n,T(t,3))}function Gh(n,t,e,r){return n==null?[]:(R(t)||(t=t==null?[]:[t]),e=r?u:e,R(e)||(e=e==null?[]:[e]),zu(n,t,e))}var Wh=He(function(n,t,e){n[e?0:1].push(t)},function(){return[[],[]]});function Bh(n,t,e){var r=R(n)?Lr:du,i=arguments.length<3;return r(n,T(t,4),e,i,nt)}function Mh(n,t,e){var r=R(n)?Xs:du,i=arguments.length<3;return r(n,T(t,4),e,i,Gu)}function Fh(n,t){var e=R(n)?Xn:Wu;return e(n,nr(T(t,3)))}function Nh(n){var t=R(n)?Ou:Pl;return t(n)}function Uh(n,t,e){(e?tn(n,t,e):t===u)?t=1:t=S(t);var r=R(n)?sl:bl;return r(n,t)}function $h(n){var t=R(n)?al:Gl;return t(n)}function Hh(n){if(n==null)return 0;if(un(n))return er(n)?Et(n):n.length;var t=j(n);return t==In||t==Tn?n.size:qr(n).length}function Kh(n,t,e){var r=R(n)?Cr:Wl;return e&&tn(n,t,e)&&(t=u),r(n,T(t,3))}var qh=P(function(n,t){if(n==null)return[];var e=t.length;return e>1&&tn(n,t[0],t[1])?t=[]:e>2&&tn(t[0],t[1],t[2])&&(t=[t[0]]),zu(n,V(t,1),[])}),ke=Ta||function(){return Y.Date.now()};function zh(n,t){if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){if(--n<1)return t.apply(this,arguments)}}function Uf(n,t,e){return t=e?u:t,t=n&&t==null?n.length:t,$n(n,Bn,u,u,u,u,t)}function $f(n,t){var e;if(typeof t!=\"function\")throw new vn(I);return n=S(n),function(){return--n>0&&(e=t.apply(this,arguments)),n<=1&&(t=u),e}}var pi=P(function(n,t,e){var r=pn;if(e.length){var i=Vn(e,Gt(pi));r|=On}return $n(n,r,t,e,i)}),Hf=P(function(n,t,e){var r=pn|ft;if(e.length){var i=Vn(e,Gt(Hf));r|=On}return $n(t,r,n,e,i)});function Kf(n,t,e){t=e?u:t;var r=$n(n,Sn,u,u,u,u,u,t);return r.placeholder=Kf.placeholder,r}function qf(n,t,e){t=e?u:t;var r=$n(n,At,u,u,u,u,u,t);return r.placeholder=qf.placeholder,r}function zf(n,t,e){var r,i,o,s,a,c,p=0,d=!1,_=!1,w=!0;if(typeof n!=\"function\")throw new vn(I);t=xn(t)||0,H(e)&&(d=!!e.leading,_=\"maxWait\"in e,o=_?J(xn(e.maxWait)||0,t):o,w=\"trailing\"in e?!!e.trailing:w);function x(z){var Rn=r,Zn=i;return r=i=u,p=z,s=n.apply(Zn,Rn),s}function L(z){return p=z,a=fe(b,t),d?x(z):s}function O(z){var Rn=z-c,Zn=z-p,lo=t-Rn;return _?k(lo,o-Zn):lo}function C(z){var Rn=z-c,Zn=z-p;return c===u||Rn>=t||Rn<0||_&&Zn>=o}function b(){var z=ke();if(C(z))return G(z);a=fe(b,O(z))}function G(z){return a=u,w&&r?x(z):(r=i=u,s)}function hn(){a!==u&&nf(a),p=0,r=c=i=a=u}function en(){return a===u?s:G(ke())}function gn(){var z=ke(),Rn=C(z);if(r=arguments,i=this,c=z,Rn){if(a===u)return L(c);if(_)return nf(a),a=fe(b,t),x(c)}return a===u&&(a=fe(b,t)),s}return gn.cancel=hn,gn.flush=en,gn}var Zh=P(function(n,t){return Du(n,1,t)}),Jh=P(function(n,t,e){return Du(n,xn(t)||0,e)});function Yh(n){return $n(n,ur)}function je(n,t){if(typeof n!=\"function\"||t!=null&&typeof t!=\"function\")throw new vn(I);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=e.cache;if(o.has(i))return o.get(i);var s=n.apply(this,r);return e.cache=o.set(i,s)||o,s};return e.cache=new(je.Cache||Nn),e}je.Cache=Nn;function nr(n){if(typeof n!=\"function\")throw new vn(I);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Xh(n){return $f(2,n)}var Qh=Bl(function(n,t){t=t.length==1&&R(t[0])?$(t[0],an(T())):$(V(t,1),an(T()));var e=t.length;return P(function(r){for(var i=-1,o=k(r.length,e);++i=t}),_t=Fu(function(){return arguments}())?Fu:function(n){return K(n)&&M.call(n,\"callee\")&&!Tu.call(n,\"callee\")},R=h.isArray,cg=uu?an(uu):wl;function un(n){return n!=null&&tr(n.length)&&!qn(n)}function q(n){return K(n)&&un(n)}function hg(n){return n===!0||n===!1||K(n)&&nn(n)==Ut}var it=Ca||Ci,gg=fu?an(fu):Al;function pg(n){return K(n)&&n.nodeType===1&&!oe(n)}function dg(n){if(n==null)return!0;if(un(n)&&(R(n)||typeof n==\"string\"||typeof n.splice==\"function\"||it(n)||Wt(n)||_t(n)))return!n.length;var t=j(n);if(t==In||t==Tn)return!n.size;if(ue(n))return!qr(n).length;for(var e in n)if(M.call(n,e))return!1;return!0}function _g(n,t){return ee(n,t)}function vg(n,t,e){e=typeof e==\"function\"?e:u;var r=e?e(n,t):u;return r===u?ee(n,t,u,e):!!r}function _i(n){if(!K(n))return!1;var t=nn(n);return t==ge||t==Uo||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!oe(n)}function mg(n){return typeof n==\"number\"&&Cu(n)}function qn(n){if(!H(n))return!1;var t=nn(n);return t==pe||t==Di||t==No||t==Ho}function Jf(n){return typeof n==\"number\"&&n==S(n)}function tr(n){return typeof n==\"number\"&&n>-1&&n%1==0&&n<=Yn}function H(n){var t=typeof n;return n!=null&&(t==\"object\"||t==\"function\")}function K(n){return n!=null&&typeof n==\"object\"}var Yf=ou?an(ou):xl;function wg(n,t){return n===t||Kr(n,t,fi(t))}function Ag(n,t,e){return e=typeof e==\"function\"?e:u,Kr(n,t,fi(t),e)}function yg(n){return Xf(n)&&n!=+n}function xg(n){if(uc(n))throw new E(m);return Nu(n)}function Ig(n){return n===null}function Tg(n){return n==null}function Xf(n){return typeof n==\"number\"||K(n)&&nn(n)==Ht}function oe(n){if(!K(n)||nn(n)!=Mn)return!1;var t=Re(n);if(t===null)return!0;var e=M.call(t,\"constructor\")&&t.constructor;return typeof e==\"function\"&&e instanceof e&&Te.call(e)==Aa}var vi=su?an(su):Il;function Lg(n){return Jf(n)&&n>=-Yn&&n<=Yn}var Qf=au?an(au):Tl;function er(n){return typeof n==\"string\"||!R(n)&&K(n)&&nn(n)==qt}function cn(n){return typeof n==\"symbol\"||K(n)&&nn(n)==de}var Wt=lu?an(lu):Ll;function Cg(n){return n===u}function Eg(n){return K(n)&&j(n)==zt}function Rg(n){return K(n)&&nn(n)==qo}var Sg=Ze(zr),Og=Ze(function(n,t){return n<=t});function Vf(n){if(!n)return[];if(un(n))return er(n)?Ln(n):rn(n);if(Yt&&n[Yt])return sa(n[Yt]());var t=j(n),e=t==In?br:t==Tn?ye:Bt;return e(n)}function zn(n){if(!n)return n===0?n:0;if(n=xn(n),n===ot||n===-ot){var t=n<0?-1:1;return t*Wo}return n===n?n:0}function S(n){var t=zn(n),e=t%1;return t===t?e?t-e:t:0}function kf(n){return n?ht(S(n),0,Pn):0}function xn(n){if(typeof n==\"number\")return n;if(cn(n))return ce;if(H(n)){var t=typeof n.valueOf==\"function\"?n.valueOf():n;n=H(t)?t+\"\":t}if(typeof n!=\"string\")return n===0?n:+n;n=_u(n);var e=cs.test(n);return e||gs.test(n)?zs(n.slice(2),e?2:8):ls.test(n)?ce:+n}function jf(n){return Dn(n,fn(n))}function Pg(n){return n?ht(S(n),-Yn,Yn):n===0?n:0}function B(n){return n==null?\"\":ln(n)}var bg=bt(function(n,t){if(ue(t)||un(t)){Dn(t,X(t),n);return}for(var e in t)M.call(t,e)&&jt(n,e,t[e])}),no=bt(function(n,t){Dn(t,fn(t),n)}),rr=bt(function(n,t,e,r){Dn(t,fn(t),n,r)}),Dg=bt(function(n,t,e,r){Dn(t,X(t),n,r)}),Gg=Hn(Fr);function Wg(n,t){var e=Pt(n);return t==null?e:Pu(e,t)}var Bg=P(function(n,t){n=F(n);var e=-1,r=t.length,i=r>2?t[2]:u;for(i&&tn(t[0],t[1],i)&&(r=1);++e1),o}),Dn(n,ii(n),e),r&&(e=wn(e,Jn|Oi|mt,Jl));for(var i=t.length;i--;)Qr(e,t[i]);return e});function np(n,t){return eo(n,nr(T(t)))}var tp=Hn(function(n,t){return n==null?{}:Rl(n,t)});function eo(n,t){if(n==null)return{};var e=$(ii(n),function(r){return[r]});return t=T(t),Zu(n,e,function(r,i){return t(r,i[0])})}function ep(n,t,e){t=et(t,n);var r=-1,i=t.length;for(i||(i=1,n=u);++rt){var r=n;n=t,t=r}if(e||n%1||t%1){var i=Eu();return k(n+i*(t-n+qs(\"1e-\"+((i+\"\").length-1))),t)}return Jr(n,t)}var gp=Dt(function(n,t,e){return t=t.toLowerCase(),n+(e?uo(t):t)});function uo(n){return Ai(B(n).toLowerCase())}function fo(n){return n=B(n),n&&n.replace(ds,ra).replace(Gs,\"\")}function pp(n,t,e){n=B(n),t=ln(t);var r=n.length;e=e===u?r:ht(S(e),0,r);var i=e;return e-=t.length,e>=0&&n.slice(e,i)==t}function dp(n){return n=B(n),n&&Xo.test(n)?n.replace(Bi,ia):n}function _p(n){return n=B(n),n&&ts.test(n)?n.replace(dr,\"\\\\$&\"):n}var vp=Dt(function(n,t,e){return n+(e?\"-\":\"\")+t.toLowerCase()}),mp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toLowerCase()}),wp=af(\"toLowerCase\");function Ap(n,t,e){n=B(n),t=S(t);var r=t?Et(n):0;if(!t||r>=t)return n;var i=(t-r)/2;return ze(be(i),e)+n+ze(Pe(i),e)}function yp(n,t,e){n=B(n),t=S(t);var r=t?Et(n):0;return t&&r>>0,e?(n=B(n),n&&(typeof t==\"string\"||t!=null&&!vi(t))&&(t=ln(t),!t&&Ct(n))?rt(Ln(n),0,e):n.split(t,e)):[]}var Rp=Dt(function(n,t,e){return n+(e?\" \":\"\")+Ai(t)});function Sp(n,t,e){return n=B(n),e=e==null?0:ht(S(e),0,n.length),t=ln(t),n.slice(e,e+t.length)==t}function Op(n,t,e){var r=f.templateSettings;e&&tn(n,t,e)&&(t=u),n=B(n),t=rr({},t,r,_f);var i=rr({},t.imports,r.imports,_f),o=X(i),s=Pr(i,o),a,c,p=0,d=t.interpolate||_e,_=\"__p += '\",w=Dr((t.escape||_e).source+\"|\"+d.source+\"|\"+(d===Mi?as:_e).source+\"|\"+(t.evaluate||_e).source+\"|$\",\"g\"),x=\"//# sourceURL=\"+(M.call(t,\"sourceURL\")?(t.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++Ns+\"]\")+`\n`;n.replace(w,function(C,b,G,hn,en,gn){return G||(G=hn),_+=n.slice(p,gn).replace(_s,ua),b&&(a=!0,_+=`' +\n__e(`+b+`) +\n'`),en&&(c=!0,_+=`';\n`+en+`;\n__p += '`),G&&(_+=`' +\n((__t = (`+G+`)) == null ? '' : __t) +\n'`),p=gn+C.length,C}),_+=`';\n`;var L=M.call(t,\"variable\")&&t.variable;if(!L)_=`with (obj) {\n`+_+`\n}\n`;else if(os.test(L))throw new E(Q);_=(c?_.replace(zo,\"\"):_).replace(Zo,\"$1\").replace(Jo,\"$1;\"),_=\"function(\"+(L||\"obj\")+`) {\n`+(L?\"\":`obj || (obj = {});\n`)+\"var __t, __p = ''\"+(a?\", __e = _.escape\":\"\")+(c?`, __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n`:`;\n`)+_+`return __p\n}`;var O=so(function(){return W(o,x+\"return \"+_).apply(u,s)});if(O.source=_,_i(O))throw O;return O}function Pp(n){return B(n).toLowerCase()}function bp(n){return B(n).toUpperCase()}function Dp(n,t,e){if(n=B(n),n&&(e||t===u))return _u(n);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=Ln(t),o=vu(r,i),s=mu(r,i)+1;return rt(r,o,s).join(\"\")}function Gp(n,t,e){if(n=B(n),n&&(e||t===u))return n.slice(0,Au(n)+1);if(!n||!(t=ln(t)))return n;var r=Ln(n),i=mu(r,Ln(t))+1;return rt(r,0,i).join(\"\")}function Wp(n,t,e){if(n=B(n),n&&(e||t===u))return n.replace(_r,\"\");if(!n||!(t=ln(t)))return n;var r=Ln(n),i=vu(r,Ln(t));return rt(r,i).join(\"\")}function Bp(n,t){var e=So,r=Oo;if(H(t)){var i=\"separator\"in t?t.separator:i;e=\"length\"in t?S(t.length):e,r=\"omission\"in t?ln(t.omission):r}n=B(n);var o=n.length;if(Ct(n)){var s=Ln(n);o=s.length}if(e>=o)return n;var a=e-Et(r);if(a<1)return r;var c=s?rt(s,0,a).join(\"\"):n.slice(0,a);if(i===u)return c+r;if(s&&(a+=c.length-a),vi(i)){if(n.slice(a).search(i)){var p,d=c;for(i.global||(i=Dr(i.source,B(Fi.exec(i))+\"g\")),i.lastIndex=0;p=i.exec(d);)var _=p.index;c=c.slice(0,_===u?a:_)}}else if(n.indexOf(ln(i),a)!=a){var w=c.lastIndexOf(i);w>-1&&(c=c.slice(0,w))}return c+r}function Mp(n){return n=B(n),n&&Yo.test(n)?n.replace(Wi,ha):n}var Fp=Dt(function(n,t,e){return n+(e?\" \":\"\")+t.toUpperCase()}),Ai=af(\"toUpperCase\");function oo(n,t,e){return n=B(n),t=e?u:t,t===u?oa(n)?da(n):ks(n):n.match(t)||[]}var so=P(function(n,t){try{return sn(n,u,t)}catch(e){return _i(e)?e:new E(e)}}),Np=Hn(function(n,t){return _n(t,function(e){e=Gn(e),Un(n,e,pi(n[e],n))}),n});function Up(n){var t=n==null?0:n.length,e=T();return n=t?$(n,function(r){if(typeof r[1]!=\"function\")throw new vn(I);return[e(r[0]),r[1]]}):[],P(function(r){for(var i=-1;++iYn)return[];var e=Pn,r=k(n,Pn);t=T(t),n-=Pn;for(var i=Or(r,t);++e0||t<0)?new D(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==u&&(t=S(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},D.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},D.prototype.toArray=function(){return this.take(Pn)},bn(D.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=f[r?\"take\"+(t==\"last\"?\"Right\":\"\"):t],o=r||/^find/.test(t);i&&(f.prototype[t]=function(){var s=this.__wrapped__,a=r?[1]:arguments,c=s instanceof D,p=a[0],d=c||R(s),_=function(b){var G=i.apply(f,Qn([b],a));return r&&w?G[0]:G};d&&e&&typeof p==\"function\"&&p.length!=1&&(c=d=!1);var w=this.__chain__,x=!!this.__actions__.length,L=o&&!w,O=c&&!x;if(!o&&d){s=O?s:new D(this);var C=n.apply(s,a);return C.__actions__.push({func:Qe,args:[_],thisArg:u}),new mn(C,w)}return L&&O?n.apply(this,a):(C=this.thru(_),L?r?C.value()[0]:C.value():C)})}),_n([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(n){var t=xe[n],e=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",r=/^(?:pop|shift)$/.test(n);f.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(R(o)?o:[],i)}return this[e](function(s){return t.apply(R(s)?s:[],i)})}}),bn(D.prototype,function(n,t){var e=f[t];if(e){var r=e.name+\"\";M.call(Ot,r)||(Ot[r]=[]),Ot[r].push({name:t,func:e})}}),Ot[Ke(u,ft).name]=[{name:\"wrapper\",func:u}],D.prototype.clone=Ma,D.prototype.reverse=Fa,D.prototype.value=Na,f.prototype.at=ph,f.prototype.chain=dh,f.prototype.commit=_h,f.prototype.next=vh,f.prototype.plant=wh,f.prototype.reverse=Ah,f.prototype.toJSON=f.prototype.valueOf=f.prototype.value=yh,f.prototype.first=f.prototype.head,Yt&&(f.prototype[Yt]=mh),f},kn=_a();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?(Y._=kn,define(function(){return kn})):st?((st.exports=kn)._=kn,xr._=kn):Y._=kn}).call(Mt)});var t_={};Od(t_,{albIpMonitor:()=>Ao,albTargetRecordMonitor:()=>Eo});module.exports=Pd(t_);var go=ho(require(\"dns\")),po=require(\"@aws-sdk/lib-dynamodb\"),_o=require(\"@aws-sdk/client-dynamodb\"),vo=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),Ei=process.env.LOOKUP_TABLE??\"\",mo=po.DynamoDBDocument.from(new _o.DynamoDB),wo=new vo.ElasticLoadBalancingV2({logger:console}),bd=async u=>{console.log(`Scanning route lookup table ${Ei}`);let v={TableName:u},y=[],m;do m=await mo.scan(v),m.Items?.forEach(I=>y.push(I)),v.ExclusiveStartKey=m.LastEvaluatedKey;while(typeof m.LastEvaluatedKey<\"u\");return y},Dd=async(u,v,y)=>{let m=v.map(Q=>({Id:Q,Port:y,AvailabilityZone:\"all\"})),I={TargetGroupArn:u,Targets:m};return wo.registerTargets(I)},Gd=async(u,v)=>{console.log(`Deregistering IP addresses ${JSON.stringify(v)} from target group ${u}`);let y=v.map(I=>({Id:I})),m={TargetGroupArn:u,Targets:y};return wo.deregisterTargets(m)},Wd=async u=>new Promise((v,y)=>{go.lookup(u,{all:!0,family:4},(m,I)=>{m?y(m):v(I.map(Q=>Q.address).sort())})}),Bd=(u,v)=>{let y=u.indexOf(v);return y>-1&&u.splice(y,1),u},Md=async u=>{let v={TableName:Ei,Item:u};return mo.put(v)},Ao=async(u,v)=>{let y=await bd(Ei)??[];for(let m of y)try{m.dnsLookupIps=[];try{m.dnsLookupIps=await Wd(m.targetAlbDnsName)}catch(I){console.log(I)}m.ipAddList=m.dnsLookupIps?.filter(I=>!m.metadata?.targetGroupIpAddresses?.includes(I))??[],m.ipRemoveList=m.metadata?.targetGroupIpAddresses?.filter(I=>!m.dnsLookupIps?.includes(I))??[],m.ipAddList?.length>0?(console.log(`Registering new ips ${JSON.stringify(m.ipAddList)} to target ${m.metadata.targetGroupArn} with port ${m.targetGroupDestinationPort}`),await Dd(m.metadata.targetGroupArn,m.ipAddList,m.targetGroupDestinationPort),m.metadata.targetGroupIpAddresses.push(...m.ipAddList)):console.log(\"No new Ip addresses to register\"),m.ipRemoveList?.length>0?(console.log(`Deregistering old ip addresses ${JSON.stringify(m.ipRemoveList)} from target group targetGroupRecord.metadata.targetGroupArn`),await Gd(m.metadata.targetGroupArn,m.ipRemoveList),m.ipRemoveList?.forEach(I=>{console.log(m.metadata.targetGroupIpAddresses,I),m.metadata.targetGroupIpAddresses=Bd(m.metadata.targetGroupIpAddresses,I)})):console.log(\"No old ip addresses to deregister\"),delete m.ipAddList,delete m.ipRemoveList,delete m.dnsLookupIps,console.log(\"Writing record to DDB table \",JSON.stringify(m,null,4)),await Md(m)}catch(I){console.log(\"There was a problem updating the record \",JSON.stringify(m,null,4)),console.log(I)}return\"Done\"};var xo=require(\"@aws-sdk/lib-dynamodb\"),Io=require(\"@aws-sdk/client-dynamodb\"),Ri=require(\"@aws-sdk/util-dynamodb\"),Ft=require(\"@aws-sdk/client-elastic-load-balancing-v2\"),vt=ho(yo()),Wn=new Ft.ElasticLoadBalancingV2,Fd=xo.DynamoDBDocument.from(new Io.DynamoDB),Nd=process.env.LOOKUP_TABLE||\"\",Ud=u=>new Promise(v=>{setTimeout(v,u)}),$d=async(u,v)=>{let y={TargetGroupArn:u,HealthCheckPath:v};return Wn.send(new Ft.ModifyTargetGroupCommand(y))},Hd=(u,v)=>{let y=u.healthCheckPath||\"/\",m=v.healthCheckPath||\"/\";return y!==m},Kd=async(u,v,y,m,I=\"/\")=>{let Q={Name:u,Port:v,Protocol:m,VpcId:y,TargetType:Ft.TargetTypeEnum.IP,HealthCheckPath:I};return Wn.createTargetGroup(Q)},qd=async u=>{let v={Attributes:[{Key:\"stickiness.enabled\",Value:\"true\"}],TargetGroupArn:u};return Wn.modifyTargetGroupAttributes(v)},To=async(u,v)=>{let y={ListenerArn:v};return((await Wn.describeRules(y)).Rules?.filter(Q=>Q.Priority===u.toString())||[]).length===0},Lo=async u=>{try{let v={ListenerArns:[u]};return await Wn.describeListeners(v),Promise.resolve(!0)}catch(v){return console.log(v),Promise.resolve(!1)}},zd=async(u,v,y,m,I)=>{console.log(\"trying to create listener rule\"),console.log(y,v,u,m,I);let Q={Actions:[{TargetGroupArn:m,Type:\"forward\"}],ListenerArn:u,Priority:I,Conditions:[]};if(v?.length>0){let ut={Field:\"path-pattern\",Values:v};Q.Conditions?.push(ut)}if(y?.length>0){let ut={Field:\"host-header\",Values:y};Q.Conditions?.push(ut)}return Wn.createRule(Q)},Zd=async(u,v,y,m)=>{let I={Actions:[{TargetGroupArn:m,Type:\"forward\"}],RuleArn:u,Conditions:[]};if(v?.length>0){let Q={Field:\"path-pattern\",Values:v};I?.Conditions?.push(Q)}if(y?.length>0){let Q={Field:\"host-header\",Values:y};I?.Conditions?.push(Q)}return Wn.modifyRule(I)},Jd=async u=>{let v={RuleArn:u};return Wn.deleteRule(v)},Yd=async u=>{let v={TargetGroupArn:u};return Wn.deleteTargetGroup(v)},Xd=async(u,v)=>{let y={RulePriorities:[{Priority:v,RuleArn:u}]};return Wn.setRulePriorities(y)},Qd=async(u,v)=>{let y={TableName:u,Item:v};return Fd.put(y)},Vd=(u,v)=>{let y={vpcId:u.vpcId,destinationPort:u.targetGroupDestinationPort,protocol:u.targetGroupProtocol},m={vpcId:v.vpcId,destinationPort:v.targetGroupDestinationPort,protocol:v.targetGroupProtocol};return!vt.isEqual(y,m)},kd=(u,v)=>{let y={sourceListenerArn:u.rule.sourceListenerArn,priority:u.rule.condition.priority,paths:u.rule.condition.paths?.sort(),hosts:u.rule.condition.hosts?.sort()},m={sourceListenerArn:v.rule.sourceListenerArn,priority:v.rule.condition.priority,paths:v.rule.condition.paths?.sort(),hosts:v.rule.condition.hosts?.sort()};return!vt.isEqual(y,m)},jd=(u,v)=>{let y=u.rule.condition.priority,m=v.rule.condition.priority;return y!==m},Si=async u=>{console.log(\"Record creation detected.\");try{if(!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);if(console.log(\"Checking if priority is valid\"),!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match. Exiting`);let y=(await Kd(u.id,u.targetGroupDestinationPort,u.vpcId,u.targetGroupProtocol,u.healthCheckPath||\"/\"))?.TargetGroups?.[0].TargetGroupArn??\"\";await qd(y);let I=(await zd(u.rule.sourceListenerArn,u.rule.condition.paths,u.rule.condition.hosts,y,u.rule.condition.priority))?.Rules?.[0].RuleArn??\"\";if(!y||!I)throw new Error(`There was an error getting the target group arn or listener rule arn. \nTarget Group Arn: ${y}\nRule Arn: ${I}`);return u.metadata={targetGroupArn:y,ruleArn:I,targetGroupIpAddresses:[]},await Qd(Nd,u),console.log(\"Added metadata to table\"),u}catch(v){throw console.log(\"There was a problem creating resources for the following record\",JSON.stringify(u,null,4)),v}},Co=async u=>{try{console.log(`Deleting listener rule and target group for ${u.id}`),await Jd(u.metadata.ruleArn),console.log(\"Deleted listener rule.\")}catch(v){console.log(v),console.log(\"Could not delete listener rule for record. Continuing...\",JSON.stringify(u,null,4))}try{await Yd(u.metadata.targetGroupArn),console.log(\"Deleted target group\");return}catch(v){console.log(\"Could not delete target group for record\",JSON.stringify(u,null,4)),console.log(v)}},n_=async(u,v)=>{try{if(console.log(`The record with id ${u.id} was updated. Performing comparison.`),!await Lo(u.rule.sourceListenerArn))throw new Error(`The ALB Listener ARN: ${u.rule.sourceListenerArn} does not exist. Exiting`);let y=vt.cloneDeep(u),m=vt.cloneDeep(v);if(delete y.metadata,delete m.metadata,vt.isEqual(y,m)){console.log(`Update Record handler found no changes made for record with Id ${u.id}`);return}if(!v.metadata){console.log(\"No previous metadata detected for record. Creating metadata based off of new entry\"),await Si(u);return}if(kd(v,u)&&(console.log(`Detected a listener rule change. Modifying rule ${u.metadata.ruleArn}`),await Zd(u.metadata.ruleArn,u.rule.condition.paths,u.rule.condition.hosts,u.metadata.targetGroupArn)),jd(v,u)){if(!await To(u.rule.condition.priority,u.rule.sourceListenerArn))throw new Error(`The priority ${u.rule.condition.priority.toString()} matches an existing rule priority on the listener arn ${u.rule.sourceListenerArn}. Priorities must not match.`);await Xd(u.metadata.ruleArn,u.rule.condition.priority)}Hd(v,u)&&(console.log(`Detected a health check path change. Updating target group health check in-place for ${u.metadata.targetGroupArn}`),await $d(u.metadata.targetGroupArn,u.healthCheckPath||\"/\")),Vd(v,u)&&(console.log(`Detected a target group change. deleting target group ${u.metadata.targetGroupArn} and creating a new target group`),await Co(u),await Ud(1e4),await Si(u))}catch(y){throw console.log(\"There was a problem updating a target group or listener rule for the records:\"),console.log(\"Old Record: \",JSON.stringify(v,null,4)),console.log(\"New Record: \",JSON.stringify(u,null,4)),y}},Eo=async(u,v)=>{console.log(JSON.stringify(u,null,2));let y=u.Records.map(m=>(m.dynamodb.OldImage&&(m.dynamodb.OldImage=(0,Ri.unmarshall)(m.dynamodb.OldImage)),m.dynamodb.NewImage&&(m.dynamodb.NewImage=(0,Ri.unmarshall)(m.dynamodb.NewImage)),m));for(let m of y)m.eventName===\"INSERT\"&&await Si(m.dynamodb.NewImage),m.eventName===\"MODIFY\"&&await n_(m.dynamodb.NewImage,m.dynamodb.OldImage),m.eventName===\"REMOVE\"&&await Co(m.dynamodb.OldImage)};0&&(module.exports={albIpMonitor,albTargetRecordMonitor});\n/*! Bundled license information:\n\nlodash/lodash.js:\n (**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n *)\n*/\n" }, "Environment": { "Variables": { @@ -417,7 +465,7 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": "nodejs22.x", "Timeout": 60 }, "DependsOn": [ @@ -425,7 +473,23 @@ "AlbIpForwardingddbDnsRecordMonitorServiceRoleBDC0C08F" ], "Metadata": { - "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/ddbDnsRecordMonitor/Resource" + "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/ddbDnsRecordMonitor/Resource", + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "CloudWatch Logs are enabled in AWSLambdaBasicExecutionRole" + }, + { + "id": "W89", + "reason": "This function supports infrastructure deployment and is not deployed inside a VPC." + }, + { + "id": "W92", + "reason": "This function supports infrastructure deployment and does not require setting ReservedConcurrentExecutions." + } + ] + } } }, "AlbIpForwardingddbDnsRecordMonitorDynamoDBEventSourceAlbIpForwardingStackAlbIpForwardingddbDNSFirewallTable6FC8CBEEB4643A78": { @@ -480,7 +544,14 @@ ] }, "Metadata": { - "aws:cdk:path": "AlbIpForwardingStack/AlbIpForwarding/ddbDnsRecordMonitorPolicy/Resource" + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W12", + "reason": "Lambda need to be able to work with any ELB in the account" + } + ] + } } }, "AlbIpForwardingcwruleBF5444E5": { @@ -529,7 +600,7 @@ "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/22OS2/CMBCEfwt3Z0u4tD0jekGVosAdbexttcQP5AcosvzfKzuIU0/zaWY1Ozvod++w3eAjdFLNneYJ8iminMX+xw7o0VAkL/ARLnk2AfKRlhodaSlCLRaNUxPkM06aqt+gCI1mUgj5K1kZ2dkavfhwJxtPLnlJ33i7sf2t8f/uQN5wCOxsEYwG8ujWR00Hp1m2PSsVQbUlQB7T8yxpKkWMFFpzs55chHWK4Bre7v0H9J/Qb66BufPJRjYE46p/z7eRUiMBAAA=" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/22OzWrDMBCEnyV3eZsYSum5tJdQME7uYS1ty8bSKugnwQi9e5FdeupphvmW2enh8PoC+x0+YqfN3FmeoJwS6lm9fcmAAR0lCgof8VJmF6EcaWnoSEtVZhF03kxQzjhZavlqqrLoJoNQPrLoxF4a+vPvd5J08jlo+sTbjeW74f/TgYLjGNlLVYwOyui3R6sO3rJe92yuKmotEcqYf8+ypVrVSHFtrkq8IbjGp3vfw+EZ9rtrZO5ClsSOYNz0B4+OkwYXAQAA" }, "Metadata": { "aws:cdk:path": "AlbIpForwardingStack/CDKMetadata/Default"