@idm-plugin/geo 2.0.9 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as f from "@turf/turf";
2
2
  import B from "moment";
3
- import _ from "@log4js-node/log4js-api";
3
+ import j from "@log4js-node/log4js-api";
4
4
  var n0 = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
5
5
  function X0(m) {
6
6
  return m && m.__esModule && Object.prototype.hasOwnProperty.call(m, "default") ? m.default : m;
7
7
  }
8
- var j = { exports: {} };
8
+ var _ = { exports: {} };
9
9
  (function(m) {
10
10
  //! moment-timezone.js
11
11
  //! version : 0.5.48
@@ -16,7 +16,7 @@ var j = { exports: {} };
16
16
  m.exports ? m.exports = z(B) : z(M.moment);
17
17
  })(n0, function(M) {
18
18
  M.version === void 0 && M.default && (M = M.default);
19
- var z = "0.5.48", O = {}, b = {}, c = {}, p = {}, A = {}, W;
19
+ var z = "0.5.48", p = {}, b = {}, c = {}, O = {}, A = {}, W;
20
20
  (!M || typeof M.version != "string") && D("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
21
21
  var o = M.version.split("."), Y = +o[0], d = +o[1];
22
22
  (Y < 2 || Y === 2 && d < 6) && D("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + M.version + ". See momentjs.com");
@@ -147,14 +147,14 @@ var j = { exports: {} };
147
147
  N[u] = !0;
148
148
  }
149
149
  for (U in X)
150
- X.hasOwnProperty(U) && L.push(p[U]);
150
+ X.hasOwnProperty(U) && L.push(O[U]);
151
151
  return L;
152
152
  }
153
153
  function O0() {
154
154
  try {
155
155
  var q = Intl.DateTimeFormat().resolvedOptions().timeZone;
156
156
  if (q && q.length > 3) {
157
- var n = p[h(q)];
157
+ var n = O[h(q)];
158
158
  if (n)
159
159
  return n;
160
160
  D("Moment Timezone found " + q + " from the Intl api, but did not have that data loaded.");
@@ -178,17 +178,17 @@ var j = { exports: {} };
178
178
  function k(q) {
179
179
  var n, X, L, N;
180
180
  for (typeof q == "string" && (q = [q]), n = 0; n < q.length; n++)
181
- L = q[n].split("|"), X = L[0], N = h(X), O[N] = q[n], p[N] = X, b0(N, L[2].split(" "));
181
+ L = q[n].split("|"), X = L[0], N = h(X), p[N] = q[n], O[N] = X, b0(N, L[2].split(" "));
182
182
  }
183
183
  function g(q, n) {
184
184
  q = h(q);
185
- var X = O[q], L;
186
- return X instanceof P ? X : typeof X == "string" ? (X = new P(X), O[q] = X, X) : b[q] && n !== g && (L = g(b[q], g)) ? (X = O[q] = new P(), X._set(L), X.name = p[q], X) : null;
185
+ var X = p[q], L;
186
+ return X instanceof P ? X : typeof X == "string" ? (X = new P(X), p[q] = X, X) : b[q] && n !== g && (L = g(b[q], g)) ? (X = p[q] = new P(), X._set(L), X.name = O[q], X) : null;
187
187
  }
188
188
  function c0() {
189
189
  var q, n = [];
190
- for (q in p)
191
- p.hasOwnProperty(q) && (O[q] || O[b[q]]) && p[q] && n.push(p[q]);
190
+ for (q in O)
191
+ O.hasOwnProperty(q) && (p[q] || p[b[q]]) && O[q] && n.push(O[q]);
192
192
  return n.sort();
193
193
  }
194
194
  function W0() {
@@ -197,7 +197,7 @@ var j = { exports: {} };
197
197
  function y(q) {
198
198
  var n, X, L, N;
199
199
  for (typeof q == "string" && (q = [q]), n = 0; n < q.length; n++)
200
- X = q[n].split("|"), L = h(X[0]), N = h(X[1]), b[L] = N, p[L] = X[0], b[N] = L, p[N] = X[1];
200
+ X = q[n].split("|"), L = h(X[0]), N = h(X[1]), b[L] = N, O[L] = X[0], b[N] = L, O[N] = X[1];
201
201
  }
202
202
  function o0(q) {
203
203
  var n, X, L, N;
@@ -240,7 +240,7 @@ var j = { exports: {} };
240
240
  var n = Array.prototype.slice.call(arguments, 0, -1), X = arguments[arguments.length - 1], L = M.utc.apply(null, n), N;
241
241
  return !M.isMoment(q) && v(L) && (N = g(X)) && L.add(N.parse(L), "minutes"), L.tz(X), L;
242
242
  }
243
- V.version = z, V.dataVersion = "", V._zones = O, V._links = b, V._names = p, V._countries = c, V.add = k, V.link = y, V.load = d0, V.zone = g, V.zoneExists = J, V.guess = A0, V.names = c0, V.Zone = P, V.unpack = s, V.unpackBase60 = T, V.needsOffset = v, V.moveInvalidForward = !0, V.moveAmbiguousForward = !1, V.countries = W0, V.zonesForCountry = Y0;
243
+ V.version = z, V.dataVersion = "", V._zones = p, V._links = b, V._names = O, V._countries = c, V.add = k, V.link = y, V.load = d0, V.zone = g, V.zoneExists = J, V.guess = A0, V.names = c0, V.Zone = P, V.unpack = s, V.unpackBase60 = T, V.needsOffset = v, V.moveInvalidForward = !0, V.moveAmbiguousForward = !1, V.countries = W0, V.zonesForCountry = Y0;
244
244
  var C = M.fn;
245
245
  M.tz = V, M.defaultZone = null, M.updateOffset = function(q, n) {
246
246
  var X = M.defaultZone, L;
@@ -280,8 +280,8 @@ var j = { exports: {} };
280
280
  var K = M.momentProperties;
281
281
  return Object.prototype.toString.call(K) === "[object Array]" ? (K.push("_z"), K.push("_a")) : K && (K._z = null), M;
282
282
  });
283
- })(j);
284
- var R0 = j.exports;
283
+ })(_);
284
+ var R0 = _.exports;
285
285
  const L0 = "2025b", T0 = [
286
286
  "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5",
287
287
  "Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5",
@@ -1139,15 +1139,15 @@ var N0 = R0;
1139
1139
  N0.tz.load(r0);
1140
1140
  var M0 = { exports: {} };
1141
1141
  (function(m) {
1142
- function M(z, O) {
1142
+ function M(z, p) {
1143
1143
  var b = "XIXHXHXGXGXQXQXPXPXOXOXN##U6U6UW#$U%U%U%U%U%XFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSXTXTXUXIXHXHXGXGXQXQVAVA#%#&V'#'U6#(#)U%U%U%U%U%#*U%XEXEVLVLVLVLYGYGYGYG#+W=W=W=W=W=W=Y$X+X+X+X+X+XTXUVPUQ#,T*T*#-VAVA#.#/#0#1#2U6U6UWU%U%U%U%U%#3VLVLXEYH#4#5#6YGYGYG#7X.#8W=W=W=#9X,X,#:#;#<#=#>VPVP#?#@#AT*T*#B#C#D#E#F#GV'#H#I#JUWU%U%U%U%X6X6#K#LYH#M#N#O#PYG#Q#R#SX.#T#UW=W=#V#WX,#X#Y#Z$#$$$%$&T)$'$(T*T*$)$*$+TW$,$-$.$/$0$1$2$3U%U%XJXJXF$4$5$6$7$8$9$:YG$;$<$=$>$?$@$A$BW3$C$D$E$F$G$HW8$IT)T)T)XHXGXGXQV=$J$K$L$M$N$O$P$Q$R$SV2XKXJXJXFY4$T$U$V$W$X$Y$Z%#%$%%VN%&%'%(%)%*%+%,%-%.%/%0W8XTT)XIXHXHXGXGXQXQU>%1%2%3TL%4%5%6%7U-XKXKX0X0XF%8%9%:%;%<%=%>%?%@%A%B%C%DX(%E%F%GWU%H%I%J%KXSXTXTXUXIXHXHXGXGXQXQU>%L%M%NTL%OUPXMX1XLXKXKXJX0X5%P%QS0%R%S%T%U%V%W%X%Y%Z&#WUWUWUWUWU&$&%X%XSXSXTXTXU&&ZDZDXGXGXQXQXP&'&(&)&*&+&,UOXLXLXKXKXJXJ&-&.&/S0&0T&&1&2WQ&3&4&5&6&7&8&9&:&;&<&=X%X%XSX%XTXTXUXIZDZDZDXGXQXQXPUI&>&?&@&A&B&C&DXLXKXKXJX3&E&F&G&H&I&J&K&L&M&N&OWEW<W<&P&Q&R&S&T&UY%X%ZUXSXTZYXUXIXHXHXGXGXQXQXPXPXOXO&V&W&X&Y&Z'#XKXKXJX3'$'%'&'''(')'*'+','-VMXXW<'.XZ'/'0'1'2WDZPZ9'3'4ZH'5XUXIXHZEZEXGXQXQXPXPXOXOZ@'6'7'8'9':';XKXJXJXF'<'='>'?'@'A'B'C'DXXXXZ1W'XZ'E'F'G'H'I'JW5Z9'K'L'MZWZ<Z<XHZEXGXQXQXPXPXOXOZ@'N'O'PUB'Q'R'S'TXJXFXFXESQ'U'V'W'X'YXWZ0XX'ZXYXZXZW4(#($(%W5(&ZS('ZB((()(*(+ZTZE(,(-XQXPXPXOXOXNU=U=(.(/(0(1(2(3XJXFX8XEXESN(4(5(6(7(8Z2XXZ+XYXZZ-Y#(9(:(;(<(=(>(?ZB(@(A(BZLZT(CZV(DXQXPXPXOXOXNXNU=(E(F(G(H(IXJXJXFXFX8XE(J(K(L(M(NZ*(OZ2XYXYXZXZY#Y#XCXC(P(QX;X;ZN(RZ>(SXHXHZVZVZA(TZQXPZ:XOXNXNV,(U(V(WV.V.XJXJXFXFXEXET((X(Y(ZZ*Z*XXXXXYXYXZXZY#Y#XCXC)#)$)%)&XT)'XUZ6XHXHXGXGXQXQXPXPXOXOXNXNV,)()))*V.XKXJXJXFX8XEXEXRSE)+SEXWXWXXXXXYXYXZXZY#Y#XC),)-).)/XDXAZ6Z6Z8XHXHXGXGXQXQXPXPXOXOXNXNV,)0)1T.XKXKXJXJXFX8XEXEXRXRXVXVXWXWXXXXXYZ/XZXZY#Y#Y$Y$Y%)2)3XDXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXN)4)5)6X9XKXKXJXJXFXFXEXEXRXRXVSESEZ/Z/XXZ/XYXZXZY#Y#Y$Y$Y%Y%XSXSXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXNV&)7)8X9XKX7X7X7XFXFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSVEZ6XUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVH)9):T9T9XJXJXFXFXEXEXRXRVIVIVIVI);VFVFVC)<VKVBVBVBVDVDVDVDVD)=VGXUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)>VH)?Y&)@VJVJVJ)AVIVIVI)BVFVF)C)DVK)E)F)G)H)I)J)K)L)MVGVGVGVGVGVGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)NVH)OY&)PVJVJVJ)QVIVIVI)RVFVF)S)TVKVKVK)UXCXCXCXCXC)VVGVGVGVGVGVGVGVGVGVGVGVGVGVGVG)W)X)Y)Z*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?VGVGXNXNV'*?XLXLUWU%*>TF*?TFTFV'TFV'V'*>V'*?U6*?V8V8*?U%V8*@U%U%U%*@XYW=YGXYXHT*UQT*XQXQ*>*?VAVA*?*@*@TF*ATFTF*ATFTF*AV'TFTFV'*A*B*C*CTRV/XFVLVLYH*CYHYH*C*DXVXV*DYGYGX.YG*D*DW=X.*EW=*E*F*GX,X+X,*GX+X+X+*G*G*HWWWW*HWWWWWWXTXTWW*HVPVPVPUQ*GUQUQUQUQT*UQT**FV>*GV>*GVAV>*HVAVA*HVAVA*HVAVA*H*IVAVATFV'VAV'V'*HV'*IU6U6U6*IU6U6*IU6X6XFXFX4XEXEX4Y@YH*GYH*HYUYUYU*H*HY7Y7*I*IYGYGYGYGYG*IYGYGYG*I*J*J*KX.X.X.X.*K*L*LW=*MW=*MX,*N*OX,X,*OX,X,*OX,*P*P*QW;*R*RWW*SWB*S*TWBWB*T*UWB*VVPVPW8*VVPVP*VVPUQUQT)UQ*UT*UQT**U*VXQV0*VV=*WV=*W*XV=*Y*YV)*ZV)V)V?*ZV?V?*ZV?V?V'*ZV;+#U6+#U6V;V;+#V;V;+#U&+$U&XLXLU&V2Y@Y@XF+#Y@Y@+#Y@XEYHY@+#+#+$+%+&YU+&+'+(+(+)+*++YGYG++YG+++,+-+.+.X.+/X.X.X.+/+0X.+0+1+2+2+3+4+5+5+6+7+8W=W=W=+8+8+9W3W3W3+9+:W%X,X,+:+;X,+;X,X+X+X+X++;X+WBWRXSWB+:XSW8W8W8W8T)V=+9+:+;+;+<+=+>+>V)TTTTV)V?+>+?V?V?TL+?V;V;+?+@+@V;V;V;V;V;V;+@V;+@+A+B+BV2+CV2+C+DYIYI+D+EYI+F+F+G+H+I+I+J+K+L+L+M+N+O+O+P+Q+R+R+S+T+U+U+V+W+X+X+Y+ZVR+Z,#,$,%VN,%VNVN,%,&,'X(,',(,)W2X',),*X',*,+X'X',+,,W&,-,-,.WUWU,.,/,0,1X+,1X+,2WRXSWRX)WW,1,2WW,2,3U>,4,4TTTTTTTT,4TTTL,4,5,6,7,7,8UPUP,8UPUPUP,8U-XLXLXF,8XFY>,8,9,:YB,:,;YBYB,;,<YMYM,<,=YM,>,>,?,@,A,A,BY9Y9,B,CY9,D,D,E,F,G,G,HVS,I,I,J,K,L,L,M,N,O,O,P,QX(X(,QWUWU,Q,RWUWU,R,SWUWUWU,SWU,T,TX+,UY%X+X%X%X%,TX)XSXSU>,T,U,V,VTT,W,X,XTL,YTLTL,YTL,ZXF,ZXFS:,Z-#S:-$-$-%-&-'YMY*T&T&Y*-&-'S9-'-(S9-)-)-*-+-,-,X#--X#---.X#X#-.-/-0-1-1-2-3-4-4-5-6-7WUWTWUWT-6X%X%X%ZJZDXIZDV:-5XPUF-5-6UF-7-7-8-9-:TLTL-:UHTL-:UH-;-;UO-<UOXFX2XFSA-;-<-=SZS0S0-=->->T&-?-@-@S9-AS9S9-AS9-B-B-CWQ-DX#-D-E-F-FW9-GW9-G-H-IW<W<-IW<W<-I-JW<-K-K-L-M-N-NWU-O-PWUWU-PWUWUWU-P-QWUX%-QX%UI-QUIXO-Q-RUIUIUIUHUI-R-RU.-SV7-S-T-U-V-VV--W-XV<T+-X-YXF-YX3-Z-ZSZ.#SZ.#S2.$S2.$.%S2SY.%SYSYSYSX.%SXSX.%SH.&SH.&SHSH.'.'WQ.(.)WQWQ.)VM.)WE.*WEW<.*W<XZ.*X-X-X-.*.+.,.-.-WU..././WXWU.0.0Y$WDY$XN.0XNXN.0UAXNTNTDTDUV.0TD.0.1TITI.1TI.2T?XLU,XLXF.1XFS5.1.2.3.4.4.5.6.7.7.8.9SK.9.:SK.;.;SX.<.=SHSH.=.>SH.>.?S/.?.@S/.A.A.BSUSUW<W<W<.BW<.BW<.C.C.D.E.F.FW0W0W0W0WD.FWDZCXSZ9Z9XSXSZ9ZRZHZH.DZHTNXNZ@XN.CTD.DTDTD.DTD.ETI.E.F.G.G.H.I.J.JXKT@T@SB.JXFXFS-.JXEXE.JSKXET%.JS@.K.L.L.M.NSJ.N.O.P.QSF.Q.R.SS/.SSWSU.SSUSUXWW<.SXZW4.S.TW4.UW4W4W4.U.U.V.WWCWD.WWC.XY%ZP.X.YZ9ZRXSZRZRZFXTXTZHZHXTZWZ@U=XNU=.U.V.WU=.W.X.Y.Z.ZV+/#V+T@/#T@/$U#U#U#/$XJURU#URSL/#SL/$/$/%/&/'/'/(SO/)/)/*S>S>/*/+/,XWXYZ1Z+Z+W4/+W4/,/,WC/-WCWCW5WC/-W5/-W5/.ZSZ7ZS/.ZKZWXTXTZWZWZ?Z?Z?Z=ZZ/,/,ZT/-ZTZEXGZVZVZIZIZVZV/+/,U=/-/-/.U</////0TPTP/0/1/2/3/3/4T=/5/5XJT=XJSN/5SNSNSO/5/6/7/7S>/8/9S>Z.SR/9Z0Z0/9Z*/9W4Y#Y#/9WCY$Y$WC/9XCXC/9/:/;X>/;/<X>X;/<ZSX;XSZS/<ZSZSZBXT/<ZBXUZ?XUZ>Z>ZX/;ZXZVZV/;ZVZVZVZV/;U=/;U=/<U<U</</=/=/>/?/@/@V./AV.V./AV.V.XR/AXRT(/ASNT(/B/B/CSC/D/D/E/FSRSRZ*XWZ*XXZ2Z4Z2/DX>/EX>X>X;/EX;Z;Z;ZN/EZXZXZ6XIZAZQXQXQXMV,V,/C/C/D/ET0/E/F/G/HT(/H/I/J/J/KSE/L/LSR/MXV/MX>/NX:X>X;X:/NX;X;/N/OX;XS/OXSZNZNZMXTV,/NV,/O/O/P/Q/R/R/S/T/USE/USESEXC/UXCXC/UX:Y%X:X:/UX:/VXDXD/V/W/W/X/YT/T5/Y/ZT5Y%/ZY%Y%/Z0#X@X@XMV,XMV&/Z0#0$0%0%XLT4X9V&0%XMV&T90%XLXLV&V&T9T90$T9T9T9XXXX0$VFXZXZVCVKXTXT0#VGXJXJ0#VHXF0#VH0$0$SE0%SE0%VI0&VI0&VF0'VF0'VC0(VCVCVKVCVK0'0(VKVK0(0)VKVK0)0*0+XC0+0,XCXC0,0-XCXC0-0.XCXC0.0/XCXC0/00XCXC00VG01VG01VH02VHVH02VH0303SE04SE04VI05VI05VF06VF06VC07VCVCVKVCVK06XC07XC07VG08VG08VHVGVGVHVHVGVGT9T9VGVGT9T9VGVGT9T9VGVGT9T9VGVG03VHVGVGVHVHVGVGVH02VGVGY&Y&VGVG01SEVGVGVJVJVGVGVJVJVGVGVJVJVGVG0.VIVGVGVIVIVGVGVIVIVGVGVIVIVGVG0+VFVGVGVFVFVGVGVFVFVGVG0)VCVGVGVCVKVGVGVKVKVGVGVKVKVGVGVKVKVGVG0%XCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVG/XVGVGVGXNXNV'U6XOXOVATFVATFVATFV'U6V'U6V'U6V'U6U6U6U6V8UWUWU%U%V8U%V8U%U%U%U%TRT*V>T*V>V>VAV>VAVAVATFTFVAVATFTFVATFVATFVATFTFTFV'V'TFTFV'V'TFTFV'U6V'U6V'V'TFV'V'U6V'U6TRTRU%TRYHYHYUYUYHYH/BY7YHYHY7YG/AYGYGYGYGX./AX.X.W=X.X.X.W=X.X.W=X,W=X,W=W=W=X,W=X,X,X,X,X+X,X+X+X+X+WWX+X+X+WWX+X+WWWWX+XSWWWWWWVPVPVPVPVPVPUQT*V>T*V>T*V>T*V>V>VAV>V>V>VAV>V>VAVAV>VATFTFVAVATFTFVAVATFTFVATFV'U6T<T<V'U6V'U6U6U6U6V;U6U6V;V;YHYH/)YUYUYU/)YUYU/)/*/+YUY7/+Y7Y7Y7/+/,YGYG/,YGYGYGYG/,YGYGYGX.YGYGX.X.YGYGX.X./)X.X.X.X.X.X./)X.X./)X.W=W=X.W=X.W=X.W=W=X,W=X,W=W3W3W3X,X,W3X,X,X,X,/$X+X+X,W;X,/#X,W;X+X+W;W;WWWWW;X)W;X)X+X+WWWWX)WWX)WBX+X+WWWWWWWBWWWWWBWBWWVPWBWBVPVPWBW8WBW8W8W8W8VPW8W8VPVPW8VPUQT*XHXHT*V@XQXQV=U8U8V0.LV=V0V=V0V0V=V=TZTZV=V=TZTZTSTSV=TSV=V=TWV)TWV)TWV)TW.GV).GV).HV'V'V?V'V'U6V'U6V;U6V;V;V;V;U6V;V;U6V;V;UWV;V;V;V;V;U&U&Y4.AY4Y4.AY@.B.CXEXEY'.CYH.C.D.E.EYU.FYU.F.GY,Y,.G.HY,.I.I.JYU.K.K.LZ&Z&.L.MZ&Z&.MYV.N.O.O.P.QYG.Q.R.S.T.T.UYEYE.UYG.V.WYGY=YG.W.W.X.Y.Z.Z/#/$/%YG/%/&/'/'X./(/)/)X./*X.X.X./*WOX.X.WOVNX.X.WIWI/(/)VNVNWIWIVNVN/(X&/)/*X&X&/*X&/*WHVN/+WHWHVY/+X&X&X&/+X&W=X&W=/*/+/,/-WG/-/.//W=//W=W=W=W=//W3W=W=W3W3W3X,W%W%W3W3W3W%W%X,W%/,X,X,/,X,X,X+X+X+X+WRX+WRWBWBW8W8V=V=/)V=V=U>XPU>/(U>U>U>V=/(/)/*TWTW/*/+U>U>U>/+TTTTU>TTTWV)TWV)TT/)TTTTTLTL/)TL/)TLTL/*/*TU/+/,V;V;/,/-V;U6V;V;V;/,/-/.V;TBV;TB/-UKUK/.U-U-U-/.TB/.V2V2V2V2U$UJ/-Y@Y@/.Y@Y@/./////0YI/1/1/2/3/4YI/4YI/5Y,Y,/5Y,Y,/5/6/7/7/8/9/:/:/;/</=/=Z&/>/?Z&Z&/?/@/@/A/B/C/C/D/E/F/F/G/HY</H/IY<Y</I/JY/Y//J/KY//L/L/MY<Y</MYG/N/OY<Y<Y</O/O/P/Q/RYGYG/R/S/S/T/UZ%/U/VYGYG/V/WYGYG/WYQZ%/X/X/YWJWJ/Y/ZYG0#VTVTVT0#0#X.WJVR0#0$VRVRVTVR0$0%X.WOVRWOWOVNWOWOVRVRWPWPVNVNWPWPVY/YVNVNVYVYVNVNVYW=VYVYVNVN/WX(W=W=W2W2W=W=W2W2W2W2X(W2W3W3X'X'W2X'X'X'W3W3/RX'/RW%W%W%W%W%W&W&W%W%/Q/RW&WUWUWU/QWUWUWUWUWUWU/QX,X,/QX,/QX+X+X+WU/QWUWU/QWU/R/SX+WRX+WRX+WRX+/RWWW8WWWWX)WWX)X)U>/PU>U>TETE/P/QU>/QU>TT/QTT/RTT/RTLTLTLTL/RTL/STUTU/S/TTL/TTL/U/UUP/VUPV;/V/W/X/X/YUPUP/YUPUPUP/YU-XLXLYBYBYB/YYBYB/YYBYB/YYB/Z/ZYB0#YBYIYI0#0$YI0$YIYI0$YM0%0&0&0'YMYM0'0(0)0*0*0+0,0-0-0.Y*Y*0.0/000101020304Y*04Y*05Y9Y905Y9XVYRY9Y9YR04Y9Y9YG04Y905YGYG0506Y906Y907YGYG0708VQVQVWVQ0708090:VWVW0:XWVQVQVSVQWSWSWS09VSVS090:WSWP0:WSWPWPWSVNVS09VS0:WS0:0;0<0<VN0=0>VNVN0>0?0?0@0A0B0B0CW,W,VNVN0C0DVNX(X(X(0CX(X(X(X(W2WUWUX'X'WUWUX'X'WUX'X'X'X'0@X'WU0@WUWUWUWU0@0@0AWM0BWU0B0C0DWMWM0DWTX%0DX%X%0D0E0F0GU>0GXPV:0GUYV:U/0GTT0H0IUY0I0J0KTTTTUU0KTT0KTTTLTT0KTLTL0KUP0LUP0LUP0MUPXFY>XFS:0L0MS:S:YB0M0N0OS:0OS0S00OT'0PT'YM0PT'YC0PT'S0T&0PT&T&T&0P0QY*XVT&T&T&S9Y9Y9XV0P0P0Q0R0S0S0T0UVO0U0VW(0W0W0XVUVUVOVUWQ0XVUVUWQVU0WX#0XX#0X0YVU0Z0ZX#X#X#X#0ZX#X#0ZVS1#1$1$1%W7W7W7W71%W7W7W7W71%1%1&W71'1'1(1)1*1*1+W9W9W91+W91,X(X(W9W<X(WUWUWU1*W<W<W<WUWUW<WUWTWT1)1*V:1*UFUFU/U/1*U/TM1*TM1+UFULUF1+1+UE1,1-1-TL1.1/ULUL1/UI1/1011UL11XNULXN11UPXNUPXNUPU.U.UPUPUP10UP1011UOX2S:1112S:S:SA12SASASASZSZS0SZS2S0S0S2S0S0T&S0T&S0T&S0S0T&T&SYT&T&1,T&S9T&S9T&S91+1,1-WQS91-S9S91-1.WQWQ1.X#1/X#1/10WQWQX#X#10X#1011W+1212X#WEWE12W9X#13X#W9WEXXW9W9W9121213W<W<W913W<W<13W:W<1414WU1516WUWU16171718W<19WUWU19W<W<WU19X-191:1;W<1;X-X-X-WUWUX-WU1:WU1;WUWUWUWU1;WUWU1;WUWUWU1;1<WU1<WU1=1=1>WXX%UF1>XOUI1>UIUIUIUI1>UIUIUI1>UIU*UH1>1?TH1?TAU*V7U.U.TKTKU.UOU.U.XMXMV7TDU71<U7XMUOU'U.UZUZ1;XMXMV-1;XMXMV%1;XLTI1;T,UN1<1<SASASZXFSZS=1<SASZSZSZSZSZS=SZSZS2SZS2SZS2SZS2S0S0S2S2S0S0S017S0SYSYSYSXT&SXSXT&SHSXSHSXSHSXSH13SHSHSHSHSHSH1313WQSHWQ13WQS1S1WQ1314VMWQWQVMVMWQWQWQWEWEWEVMWEW<11W<XZW)11XZX-X-111213X*VXX*X*12VX13VX1314VX15VX15VX1616W0X*17WUWUW0WU16WUY$Y$Y$WDWUWD15WDWDWD15U*XNXN1516TYUAUVTDUVTDXMXM1516TD16TD17XL17TIU(TI17TITIS=17S=18S=18S5S<S2S2S218S<S<18SBS<1819S<S2S2S21919T#T#T#191:S-S-T#1:1;S.1;SYT#SY1;SY1<SK1<T$1=1>SYSYSK1>SYSXSK1>SK1>1?S@SXSX1?SX1?SXSX1@SXSXS3S3SHSHS3SFSH1>SFSFSH1>SHS/SHSFSFSF1=1>S/S/1>VM1?1@S/SUS/S/VMVMVMSUVMVMSUSU1=W'1>W'W<XZW<X-XZX-W<VXX-VXX-1<1<1=1>WK1>VXVXVXWKWKVXW0WK1=WK1>WDWDW0Y$ZHZGZHZGUVUVTDXMXMTDU+U+TD1:TDTDTDTDTDUBTIU,TITCTITIUBUBTCTCUBTCU,16U,UXUXUXUXTJU,U,TCV+UXTJV+T@XKXK13XKSV13SVSV13S.14S.1415S.XESK1516S@SQS@SL16S@S@SLS7S3S3S315S3S3SJS3S@S7S714S3S314SOSFSFSO1414SOSOSOSOSOSO14S/S/SFS/13SG14SGSGSW14SWS/S/S/SUS/SUSUSUW<W4W4W4VX11W4W>11W>W>W>11W>1213W4W?13WLY$W?1314W?WD14W?W?WCWLWCWD13WCWCWCWCWCW5W5ZPW5W5ZPY%W5W5U+U+1011U+U+11U=U=11U=U=TDTDU=U=TDUBTDUBU=U=U=TXTXUBTXUBUBV+UBUBUBV+UBV+T@U#T@U#1*U#1+U#U#U#1+U#SL1+S7S71+1,1-1.S71.S7SJSJSJSJSO1-SJSNSJ1-SOSJSOSJSOSOSOSO1,SO1-SO1-SOSO1-SG1.S>1.SWS>1/SWSW1/SWSUSUSWXW1.1/S>S>1/WLWLWLW4WLW4W4WLWLWL1.WLWCW4W4WCW5WCW5W5Y%W5ZSW5ZSW5ZSZ7Z7Z7ZBZZXIZZZ5Z=XHZOXHZOXHZ5ZO1&V*U=U=V*TXV*1&U=U<U=U<UB1%U<V$V$UBV$TPV$1$U<U<UBV+TPTPV+V+TPTPT@T@TPT-T-U#T-U#TPT-TPV.T-0W0XT=U#U#T=T=0W0X0Y0ZT=0ZT=T=0Z1#U@U@SNSNSN1#SOSOSOSPSNSPSPSP0Y0ZSPSP0Z1#SPSPSP1#SP1$1$SR1%SRZ.Z.XWZ3Z3Z*Z3Z*W4W4Z,Y#W40ZY$Y$WCW*WCW*W5W5Y%X>W5Y%X>Y%Y%X>XCX>Y%W5X>Y%W5ZSY%X;ZSZSX;XSZBZBZSXSZBZBZ;Z;Z>Z>Z>ZXZTXGXGZVZVZVZVZAU=U<0NU<V,0NV,0OU<U<U<0OU<T;0OT;TPTPU<TGTPTPTGTGT;0MT;TGTGTG0MTG0MV.V.V.0MV.0NV.0NT=0OT=SNSNT(T(SNSN0NT(T(SCT(SCSPSPSC0MSP0M0NSDSDSD0N0OSDSRSDSD0NSRSRSRSD0N0OSRXCX>XCX>XCX>XCX>X>0MX>X>Z;XTZNZNV,T/0L0MT10MT50N0NT;T0T00N0O0P0QT;T;0Q0R0R0S0TV.T0T;T00T0T0U0VV.T(SCT(SCT(T(T(SET(SESESESCSCSC0S0SSESESESESE0S0TSESR0TSR0TSESESEXCX>XCX>XCX:XCX:X:X;X:XDX;X;XDXDX;X;XD0PX;X;0P0Q0QT60R0S0ST30T0UT2T0T70UT0T0T00UT70UT5T50U0V0WT.T00W0X0Y0YV.UM0Z0Z1#T.T.UMUMT.XL0ZSESESEXCXCXCX?0YX:X?Y%X:XDX:0YX:0YX:0ZXDXDXB0ZXDXD0ZXDV,V,V,0Z0ZT5T5T5V,0ZV,V,T.T.0ZT.T/0ZT/T/X:0ZY%Y%XBXBX=0ZXBXBX@X@V,0YV,T40Y0ZT4T4V&T4V&V&T4T40YT40YT/T4T4V&T9V&V&XLX9T9XLT9T9V&T9VIVFVIVFVDVGVDVGXJXJT9VHXFXFVHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKXCVBVBXCXCVKXCVKXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVGXCVGXCVGXCVGT9VHT9VHT9VHT9VHVHY&VHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVKXCVKXCVKXCVKXCXCVGXCVGXCVGXCVGXMVHVGVHT9VHT9VHVHY&VHY&Y&SEY&SEVJVIVJVIVIVFVIVFVFVCVFVCVKXCVKXCXCVGXCVGYHYH/U/VYHYH/VYGYGX.YGYGYHYHYH/UYH/UYHYU/UY7Y7Y7XRY7/UYDY7Y7/UY7YU/UY7Y7Y7Y7/U/VY7/VYGYGYGYG/VYGYGYG/VY=YGX.X.X.X.X./U/VX.X.X&X&X,X,/UW3X,W;X,X,V=V=U8V=TWV)TWV)V)V?V)V?V)/QV)V)Y4Y4Y4/QY@Y@/QY@/Q/RY4Y4Y8/RY@Y@Y'Y,Y'/RYHYHYH/RYHY3Y3Y3Y3/QY3Y3/QYUYUYUYUYUY3YUY3Y3/P/QY3Y3/Q/RY3/RY3Y3YUYU/R/SY,/SY,/TYUYDYUYUYDY7YVYV/R/SYL/T/TYUY3Z&YUXRZ&Z&XRY;/SY;/SZ$Y;/TY7/TYVYVYLYLYL/TYL/TYLYL/T/UYVYG/UYGYGYG/UYGYL/VZ$Z$/VZ$Z$Z$Z$/V/V/WZ&/X/X/YYEYE/YYEYEYE/YYEYEYEYGYGYEYGYE/XYEYEYGYG/XYG/XY=/YYG/YY=Y=Y=Y=Y=Y=/YY=Y=YGY=Y=YN/XYNYGYGYG/XYGYGYG/XYG/XYGYGYXYXYX/X/X/Y/Z0#0#0$YNYNYN0$YN0%Y=X.0%X.YN0%0&0'X.X.0'X.0'0(0)0*0*X.X.X.X.0*X.WOX.X.VNVNX.WIVN0)0)0*0+X&WIX&WIWHX&X&WHWHX&X&WHX&WHWHWIWHWH0'VN0(0(WHVYVYX&X&X&0(WH0(WHWH0(WG0)WGWH0)VYVYVY0)VYVY0)0*W=W=0*WGVYWGWGW=WGW=W=0)W=W30)W3W3W3X,X,WUWUX,X,WUWUV=V=0'0(0(U>U>U>TWTWV=TWV=V=0'0(V=V=0(TOTWTW0(TWTWTWTW0(U>U>U>0(TLTL0(US0(TLTTTL0(TLTLTLTL0(TLTL0(V;TUTU0(TUTLTL0(TU0)0*TU0*TUTU0*V;TU0+V;V;UP0+V;UPV;UPUP0*UP0+V;V;UKUKUKU-UKU-U-0)U-U-U&V20)V2Y4Y4XEY@Y@Y@YIYIY@0'YI0(Y@Y@YIYIY@Y@Y@0'Y@Y'0'0(YI0(YIYIY'Y'0(0)0)0*0+Y,0+0,YIYI0,Y,0-0.YIYIYI0.0.0/YI00Y,Y,00Y,Y,000102Y,02Y,0303YK04YK04Y,0506Y,Y,06070708YM09090:YMYMY,0:0;0<0<0=Z#Z#YM0=YMYM0=0>0?0@Z&Z&0@Z&YK0@0A0B0B0C0D0EZ&Z&0E0FZ&Z&0F0GZ#0GZ#0H0HY-0I0J0J0K0L0M0MY00N0O0O0PY0Y00P0QY00R0R0S0TY+0TY/0UY/0U0VZ&0W0W0XY<Y<0X0YY<Y<0YYEY<Y<YEYEY<Y<0X0YY/Y/Y<0YY/Y/0Y0ZY/1#1#Y<Y21$1$1%1&1'1'1(1)Y<1)Y<Y<Y<YGYGY<1)Y<1)Y<Y<1)1*Y<Y<Y<1*YRYRY<1*1+1,1,Y<Z(1-1-1.YRYRZ(1.YRYG1.1/Y<Y<YGYG1/YGYG1/101111121314Z%Z%YGZ%Y<Y<131414YGYGYGYG14YG15Z%1516YG16YQ171818YQWJWJYQ18YQWJ18X.WJWJ1819YGYGWJWJY)19Y)Y)YGY)VTVTVQVQX.X.17WJX.X.X.17X.X.17X.1718VQVQ18VQVQVQVYVY18VYX(X(18X(X'18X'X'W3W318W%18W%WU1919WUWUWUW%WUWUWUWU18WUWU18X,WUWUX,X+X+X+WUX+WUWUX+X+WUWUWUWU15WU15X+16X+WRWRX%16U>TETETETETEU>U>TETETTTT13TTTTTTTETTTETETETE12TT12TLTLTLTL12TLTUTLTUTL12TUTU12TUTU121314141516U016171819U019U01:U01:1;UPV;V;V;1;1;V;1<UP1<1=UPUPV;V;1=1>V;1>UPUP1>UPUPUP1>U-XLU-YBYB1>1?YBYB1?1@YIYI1@YI1@1AYBYB1AYB1BYB1BYBYBYB1B1CYBYB1C1DYBYBYI1DYI1E1EYM1FYMYIYIYI1F1FYM1GYMYMYMYM1GZ'Z'YMZ'1F1GZ'Z'YPYP1GYPZ'Z'YMYM1F1GYMYJ1GY+YPY+Y+1GY+1H1H1I1J1KY+1K1LYSYWYWY*Y*1K1LY*Y*1LY/1M1NY/Y/1N1OYTYT1O1PYTYT1PYT1P1Q1R1SY/Y/1SXVYTYT1SY9YTXVY9Y9Y*1RY*Y*Y*Y*Y*1R1RY91SY9YRYGXVXVYGYG1RYGWZWZY9Y9WZWZWZ1QWZ1QWZWZ1QX/1R1SY91SY91T1TYG1UWZYGYG1U1V1VVW1W1XVWVWVW1X1X1YX#X#1Y1ZX#X#1ZXW2#X#2#2$VSVSVSVSX#2$VSVS2$2%WSWS2%WSWSWS2%2&VS2&VSVSWSWYWS2&2&2'VSVSWSWSVSWS2&VN2'VNVNVNVN2'VNVN2'2(2(2)2*W#2*2+W#W#WY2+2,2-2-2.2/2020W,21W,W,W,21W7212223W#W#W#W#X(22W#W#W#W#22W#W#W#W#X(X(X'X'WUWUX'WUWUWUWUWUWU2/WU2/20WM20WMWMWMWMWM2021WU21WUWUWUWU21WM2122WMWM22WT23WTX%X)X%X)U>U>U>2222TTUYUYU>22U>U>UYUY22UYU>U>2223U>U>2324TT24UYTTUY24UYUYUY24UY25UY25UYUYU/25U/U/2526U/U/26TTTMUUTTTLTLTLTLTL25TL2526TL272728TLUPTL28TL29TL29TL2:2:YBYB2;YBYB2;YBYBYBS0S02:2;S:S:2;S02<S0S0S0S:S0S0T'2;T'2;T'2<T'YMYMYCYCT'T'S0T'2:T&T&T&Y*2:Y*2;Y9Y92;2<2<2=WFWFY9Y92=Y9Y92=2>2?2?W(WFVZW(W(2?W(XV2?W62@2@W(2A2B2B2CS9W62CY9W(W(2C2DW(W(W(2DW(2E2E2F2GVU2GVUVUVUWQ2GWQWQ2GX#2H2IVU2I2JX#VU2JVUVUX#X#2JX#2JX#VU2KX#2KX#X#X#2KX#X#2K2LX#2MX#W72MW72MW7W7W7VS2MW7W7W72MW7W7X#2MX#X#W7W7W7W9W72LW7W72LW7W7W7W7W72L2MW,W,2MW9W7W9W9W92LW9W9W9W9W9W9W<W7W7W72K2KW92LW92L2MW92NW92N2O2PW<W<2PW<WT2PWTX%2PX%X%X%V:U/V:V:UFU/UFUFTMUUTMTMTMTMTM2MUFULUFUF2LTLTMUETM2L2M2NUEULULULTLTL2MTLUL2MULULTLTL2MTLULUIULUIULUL2LULUL2LULUL2LULUIUL2LXNUEXN2LUPXNXNUPUOUPUOUPUOUPUOUPU.U.U.X2SASASAS:S:SASASAS0SASZ2FS9T&S9S9VO2F2GVOWQWQWQS9WQS9S9WQWQS9WQVUVUWQWQW@2CWQ2DX#X#WQX#WQWQWQ2CWQ2CWQWQ2CWN2D2EX#X#2EX#WNX#W+W+X#2DW+2EW+2EW+WE2EX#2FXXX#2FX#2GX#W9X#W92FW<W<W<W92FW92G2GW<W<W<W9W<W9W9W<2FW<2GW<2GW<W<W:WUW:W:W:W:W<W<W:W:2EW:2EW:W:2FW<X$2F2GW<W<W<2G2G2H2IW)2IW)W<W)X$X$2IW<W<W<W<2IW<W<W)2IW<W<2IW<W)2IW)2JW<X-W<X-X-WU2IWU2IWUX-X-WUWUWU2IWUWUVXWUWUWUWU2HWUWU2HWUWUWU2HWUWUWXY$WXWUWX2GWXWXY$2GX%UFUFUF2GUFUI2GUIUI2GUIUIUHUHUIU*UHTH2FTHUH2FUHTHUH2FU*TAU7UZU7U7UZV-XMV-V-V%XMXM2CV<V5V52CV1U;2DU)U)TVUDXFSAXF2C2CS=S=S=S0SYSYSYS92BSHSHSHS1SHS1XWWQSHWQSHSHS1S1WQWQVM2?WQ2?VMVMW<W)W<W)W)X-2>X-WUWUX-X*X-X-VXVX2<X*VXVXVXVXX-VXX-2;X-VXX*2;VXVXVXX*VX2;VX2;VXVXWUWUVXVXVXVXY#WU29VXX*VX29W0X*W0WU29WUWUWXWXWXWDUI28XNXNU*V7TYTYV7V72728TI28TITITQU;28TITDTITITITITI27TIUDUDV6V4V#V#26TIS=S=262727S=S5S5S=S2S=S2S2S2S<S2XF25XFSBS<S2S<S-SBS<24SVS2T#S2T#S2S2S2T#S2S2S-S-T#T#21T#S.21S.S.S-S.S-21SYSY21SYSYSYSY2121SKSKSK21T$SMT$S.21S.SMT$SKT$SK20SKSKSKSKS@SK2020S@21SXSK21SKS@SXSX21SX21SX22SXSXSXSXS3SHSHSHSFSHS1SHS/S/2/S/S/2/S1S/S/S1VMS1S1S/2.S/S?VMVM2.XWW<W<2.W'W<W'W'W'VXVX2-Y#VXVXVXWK2,VXWKWKVX2,VXVXX-2,X-VXX*W0WKW0WKW0W0W0TITITD2*U,XLU,UXTJXKTJT@SV2(SVSV2(S.S-S.2(S.XES.2(2)2*2+2+SK2,SKSKSKS@S@SKS@2+2,SQSQSLSLS3S3S32+S7SJS7SJ2*S3SOSOSFSF2*SOSOSOSJSOSOSOSO2)SOSGSO2)2)SGSGSGSG2)2*SWVXVXW>2*VXVXVXW>W>W>2)W>W42)W4W42)W4W4W4WL2)WLWLY$W$W?2)2)W?W?W?W?W?WC2)WDWDWDWCXMU+U=U+U+U+2'U+U+U+2'U=U=U+U=U=T@U#T@2&T-U#T-U#U#U#U#2%SLS7SLS7S72$2%2&S7S7SJ2&SN2&XRSN2&SNSNSNS7SJSJSJ2%SJSJSJSJSJSJSOSO2$SO2%2%2&SO2'SOS8SO2'SGSG2'S>2'S>S8S>2'SW2(2)S>SWS>S>SWSW2(SWS>SWS>S>SWXW2'XWWLWLW4WLWLWC2&WCU=V*U=U=V*V*V*U<UBUBUB2$V$V$V$2$T-T=T-T=2#V.V.V.U#V(2#T=V(V(T=2#2#T=T=T=T=2#T=U@T=2#T=T=2#2$2%2&V(V(2&XJSNSNSN2&SO2&SP2'SPSP2'SOSOS>SPSPS>S>2&S>SPSPSP2&2&2'SR2(S6SRS6SRS6SR2'S6WCWC2'WCU=U=2'2(2(U<V,U<V,U<V,U<U<U<2'U<U<U<2'T;2'TGTGTGTGTG2'TG2'V.V.V.TGV.TG2'2'V.V.V.T=T=V.2'V.T=V.V.2&SNT(T(SPSPSC2&SPSPSPSDSPSDSDSDSC2$SCSCSDSDSC2$SRS6SR2$2$SRSDSRSDSD2$SDX>X;X>X;V,V,V,T6T2T2T6T2T1T5T1T51XT5T5T5T51XT5T5T/T/T/1XT8T01XT0T21XT2T21XT0T/T0T0T0T01X1XT;1YT;1YTGT;TGTGV.V.V.T;T;T;1XT0T0T01XT;T01X1YT0V.V.V.1XV.V.V.SC1XSE1YSC1YSCSESE1YSE1Z1ZSESSSESESESE1ZSESTSESEX;X;XDXDX;X;XDXD1W1XXDXDV,T6V,T6V,T6V,T31VT3T3T3V,T3V,T3V,T3T51UT3T31UT51UT01VT0T0T0T01VT7T0T71VT01V1WT.1WT.T.T.1WT.T.T.1W1X1YUMT01Y1Z2#2#UMUMUM2#V.UM2$2$2%UMV.T.2%T.T.2%UMT.2&SE2&SESEXCXCX?2&2&XDXDXDXB2&XBXBXBXB2&XB2&2'XBXB2'XBXBXBV,2'V,2(2(T5T5T5V,T5V,T/T.T.2'T.T5T5T/T/2&XBXBXBX=XSX@X@V,2%V,T4T/T/T42%T/T/2%2&T4T4V&T4T/T/T4T4YU2$YUYU2$Y72%Y7YHYH2%2&YHYHYHYUYUYUYH2%YUY7Y7Y7YUYDYUYDYDY7YDY7YUY7Y7Y7Y7Y7Y71YY7Y7YGYGY7Y7YGYGYGYGY7YG1VY=Y=Y=1V1WX&X&X&1WX&X&X,X,X,W3V?V?V)V?Y4Y4Y41U1UY@Y@1V1V1WY4Y4Y@Y@Y4Y4Y8Y8Y@Y@1U1V1W1XYH1XYUYUY3YUY3Y3YHYU1WYUY,1WY,Y,1WY3Y,1XY3Y31XY,Y3Y3Y31X1XYUY31YYUYUY,Y,Y3Y3Y,Y3Z&Z&1WZ&1WZ&1X1YXRYVYLYLYVYVYLYLYLYLYL1WYUYUY3YUZ&Y;Z&Z&Z$1UZ$Z$Y;Z$Y;Y;Y7Y7YVYVYLYL1SYLYL1SYLYLYVYGYVYVYGYGYV1RYGYG1RYGYVYVYLYLYLYGYLYLZ$Z$Y;Z$Z$Z$Z$YEZ&1NZ&Z&Z$Z$1NYE1NYEZ&YEZ$1NYEYE1NYEYEYEYLYLZ$YEYEYGYEYEYEYGYE1LYEYGYGYG1KY=Y=Y=Y=Y=YGYGYGYGY=1JY=Y=Y=1JY=Y=Y=1JYGYGYG1JYGYGYX1JYGYX1JYX1J1KYQYN1K1LYGYGYN1LYGYGYGYGYG1LYGYGYG1LYXYX1LYNYXYN1LYNYNYNYN1LYNX.X.X.Y=Y=1KYNYNX.YNYNYNYN1J1KYN1KYN1LX.X.1LX.1LYGYGYGYN1LYG1MYGYGYG1MX.X.1MX.X.1MX.X.X.1MX.WOVN1MVNVNX.X.X.1MX.X.X&X&X.1LX&X&WHWH1LWHVYVYVN1LVYWHVYVYX&X&X&WGX&WHWHWHWGWG1IWGWHWGWHWGWHVYVYVYVY1GVYVYWGWGWGW=W=W=1FW=WGWG1FWGW=1FW=W3W=W=1FW3V=V=V=1FV=V=1F1GV=1GU>U>V=V=U>U>V=V=U>1FV=V=1FU>TWTWTTTTTWTWTTTTU>TEU>1DTT1DTTTT1D1ETLTL1ETLTLTLTL1ETLTLV;1EV;V;1ETU1F1GTUTUUGTU1FUG1G1HTUTUTLTLTU1GTUTU1GV;TUV;V;V;TUTU1FUKUPUKUP1FUPUKUP1FUPUPU-U-U-1FTBTBTBV2Y@Y@Y61E1EY6YI1FY@Y@1FYIYI1FYI1G1G1H1IY.YI1IYIYI1I1JY.Y.1J1KY.Y.Y'Y'1K1L1L1M1NY,1N1O1P1Q1QY.YI1RY.Y.1RY.Y.Y,1R1S1S1TYIYI1TY,1U1V1V1WZ)Z)YI1W1X1Y1YZ)1ZZ)1Z2#2$2%Y,Y,2%2&Y,2&Y,2'Y,Y,Y,2'Y,2'2(2)2)2*2+YKY,YKY,Y,2*YKYKYKYKYKY,YK2)Y,2*Y,2*2+Z)Z)2+2,Z)Z)2,2-2.Z#2.Y,Z#2/Z)Z)Z)2/Z)Z)2/20YM20YMYMZ)20212222YMYMYMY,Y,Y,2222232425Z#25Z#Z#25Z#Z#Z#2526Z#Z#2627YMYM2728292:2:2;Y?Y?2;2<Z'Z'Y?Y?Z'Z'Z&Z&2;2<YKZ&YKYKYKYKYK2;YKYK2;2<2<Z&YKYKZ&Z&2<2=YKYK2=2>YK2>2?Y-2?2@Y-Y-Z&Z&Y-Y-2?2@Y-Y-2@Z&Y-Y-Z#2@Z#Z#Z#2@2A2B2BY-2C2DY02DY0Y02D2EY0Y0Y?2EY?Y?2E2FZ'Z'2F2GZ'Z'Z'Z'2G2HY0Y0Y02HZ'Z'Z'2HZ'2H2I2JY-Y-2J2KY-2K2L2M2M2NY0Y02N2OY0Y0Y0Y/2OY/Y0Y02O2PY0Y02P2Q2QY+2RY+Y02RY/2SY/Y/Y+2SZ&2SZ&Z&2SYEYEYE2SY<Z&2TYEYE2TY<YEYEY<Y<Z&Z&2SY<2SY<Y<Y<YEYEY<YEYYYY2RYYYYY<2R2SY<Y<Y<2SY<Y<Y/Y/Y<2RY2Y2Y2Y2Y/2RY<Y<2R2S2SY<Y22TY2Y2Y22TY22TY<Y<2TY<2U2VY<Y<2VY/YEYEYE2VYEYEY<Y<2U2VY<Y<YGY<Y<Y<YGYGY<Y<Y<2TY<Y<2T2UY<Y<2UY<Y<Y<Y<Y<Y<2UY<Y<2U2VY<2VY<Y<2VZ(Z(Z(Y<Y<Z(Y<Z(Y<Z(Y<Y<Y<2TY<Z(Z(Y<Z(Z(Y<XVXVYGYGY<2RYGYGY<YGY<2QY<YGYGYGYGYQYGYG2PZ%2P2QZ%Z%YQ2QYQYQ2QYQYQYQYQYQZ%2QYQYQZ%Z%Y<2PY<Y<2PYGYGYGY<2P2Q2R2RZ%Z%Z%YG2RYGYGZ%Z%Z%YG2QYGYGYG2QYQYQYQYQYQ2Q2RYQYQ2RYQZ%WJ2RWJYNYNYQYQYNYNYN2Q2Q2RYGY)Y)WJY)Y)Y)VTY)Y)WJ2PWJWJX.X.VRVR2OX.VRX.VTVTVT2OVTVT2O2PVTVT2PVQVYVYVNVNX(X(2OX(2O2PX'X'2PW%W%W%W%W%W&W%2O2PWUWUW%W%2PWUWU2PWUWU2PX,X,X,WUWUWUX+WUWUWUX+2NX+X+X+WRWRX%X%2MTT2NTTTT2NTTTTTTTTTT2NTLTUTLTU2M2NTL2O2OTUU0U0TUTU2O2PTU2PUPUP2PV;UPUPTLTLTLU0TLU0U0U0TL2NTL2OTLU0TL2OU0U0U5U0TL2NTLTL2NU22OTLU0UPU0UPU02NU02OU0UPUPUP2N2OUPUPV;V;V;2O2OV;V;V;V;UPUPUPV;V;V;UPV;2MUPUPV;V;UPUPV;V;UPUP2KUPUPUP2KUPUPUPUPUKUPUKYB2JY>Y>Y>2JY>Y>2J2KY>Y>YBYB2KYBYIYI2KYIYB2KYBYBYIYIYBYBY>2JY>2KY>2KY>YBY>2KY>YBYIYIYBYBYIYIYB2JYIYI2J2KYIYI2K2L2LYM2M2NYI2NYIYIYMYM2NYM2NYMYIXRYIYIYI2N2NYMYIYMYIYMYIXR2MYMYMYMZ'2MZ'Z'YPYP2MYPYPYPZ'2MZ'2MZ'Z'2M2N2O2P2P2Q2R2SY/Y/Y+Y+Y+2RY+Y+YJYJYJ2RYJ2RYW2SYJ2SXRYWYWYWYW2SY+Y+2SY+2S2TYSYS2T2UYWY*2UY*Y*Y*2UY/Y/Y/2U2V2WYTY/Y/YTYTY/2VYTYT2V2WYTYTYSYTYSYTYTYTYTY*YTYT2UYTY/Y/2UY/Y/Y/2UY/2UYTYTYTYT2UYTYT2U2VYTYT2VY92WY9Y*Y*Y*Y9Y*2VY*Y*Y*Y9Y9Y92UY9Y*Y*YGYGYG2UWZWZY9WZYGYGWZWZY92SY92TY92TY9Y92T2U2VX#2VX#X#X#Y9X#Y9X#YGYGWZYGWZWZ2TWZYGYG2TYGYG2TYGVWX/VWX/VWX/X/2SX/VWVWX/VWVWVW2RVW2R2SX#X#2S2TX#X#2TX#X#X#X#VWX#2TVWVW2TVWX#VWX#X#WSWSVSVSWSWS2R2SVSVSX#X#VSVS2RVSVSVS2RVS2RWS2SWSVS2SVSVSWSWSVSWSVS2RVSVSWSWYWS2R2R2SVS2TWSWS2TWSVNVN2TVNWP2TWPVNVNVNVN2TVNVN2TWYWYW#W#W#2SVNW#W#VNVNW#W#W#W#2R2SVNW#W#W#W#2RW#W#2R2S2TWYWYWY2T2U2U2V2WW,WY2W2X2Y2Y2Z3#3$3$3%W#3&3&3'W#W#W,3'WS3(WS3(WSW,W,W,3(W,3(3)3*3+3+3,3-3.3.3/W#W#3/30W#W#VNVNW#W#3/WUWMWMWUWU3/WMWU3/30WMWU30WMWMWMWMWM30303132WTWUWUWU32WUWUWU32WU32WMWM32X+WMX+WMWMWM323233WTWTU>U>U>33U>TTU>UYU>32U>3333UYUYUYU>33XPV:3334V:V:V:34V:V:V:34V:U/TTTT34TT34TTUYUYTTTTUYTTUYTTUY33UYTTUYTTUYUYU/32UYUYU/U/UYTT31U/3132UUUU32TLTLTLTL32TLTLUPUP3233TLUPTLUPTLTLTL3232UPUPUPUPUP32UP32UP33UP33UPTLUPTLUPUPUP32YBYBYBYBYBS:3232YB33S:S:33S:S:S:S0S:33S0S033S033S0S0S0S033S034S0S0S034S034T'T'T'T&34T&Y9Y93435Y*35Y*Y*35Y9Y*XV35Y9Y*Y9WFW-WFWFW-34WF35Y9Y9W-W-Y9Y93435Y935363737W(W(W(W-W-37WF3738393:VZVZ3:3;3;3<3=W/3=W(3>W(3>3?VOVOW(W(VOVOW.3>S93?3?3@W63AY9Y93A3BY9Y9Y9W(Y93AW(W(W(W(W(3AW(3AVUVU3AY9W(W(3A3BVUVU3BVUVUVU3B3CVUVUWQVUWQWQX#X#3BX#3BX#VU3CX#X#3CX#3CX#X#X#VU3C3D3E3EX#3FX#3FX#VU3GVUVUVU3G3GX#3H3IVSX#X#X#3HVSX#X#VSVSVS3HVSVS3HVS3HVSX#VSX#X#X#W7VSVSW7W73F3GW7W7W73GW7W7W7W7X#3GW,3GW7W73GW7W7W7W7W7W73GW7W73G3HW7W93HW9W7W9W9W9W73GW7W7W73G3H3I3IW9W9W9W93IW93J3JW<3KW<W93KW9W9W93K3L3MW93MW93N3NW<W<W<W<W<3NW<WTWTWT3NWTY%X%Y%TMTMULULUU3LUUUUULUEUL3LTM3LTMUL3LULULULUE3LULUEUETLUE3LTLTLUE3LULUL3LUL3L3MUEUEUIULUI3M3MTLUEUETL3MXNUPT&S9T&3MS9S9S93M3MWQWQWQW@3MW@W@W@W@WQ3MWQWQWQ3MWQ3MWQWQVVWN3MWNWNWNWQWNWNWNW+W+X#X#WEX#X#3JW+3KW+W+W+WE3J3KWEWEWEX#3KX#3KXXWEWE3KW7X#3LX#3LX#X#W9W9W9W<W9W9W93KW9W<W<W<3JW<W<W<W<W<3JW:3JW:W<W<W<W:W<W<3I3JW<W<W:3JW:W:W:W:3JW:W<W<3JW<X$X$W<W<W<W<W<3IW)W)3I3J3JW<W)W)3J3K3LW)3L3MW<W)X$X$W<W<W<W<W<X-W)3KW)W)3KW<W)W<W)W)3KW<W)W<W)W)X-WUWUWU3IWUX-X-WUWUVXVXWUWUWU3HWUWU3HWUWUWU3HWUWUWXWXWXWXY$WXX%UFUFT>3FUFUFUIUIUI3EUIUIUH3EUH3FUHUH3FTHTH3FTHTAV%3FV%V5T+T+T+3FV3T,3FT,XFSASA3FSZSZ3FS=S9S9SHSH3EWQVMVMWQWQVMVM3DX-W)X-X-3DVXVXVXVXX-VXX*X*3C3DVX3DVXVXVX3DVXVXVXVXX*VXW0W0X*W03B3CWUWUUI3CUIU*TYV7TYV7V7V7V7UAT:T:3AT:3ATQTITITDTDTD3A3AV#TITIS=S=3AS4S=3A3B3CS=S=S=3CS<S<XFSBSBSBSBSVS-T#S-S-T#3@S.S.3@S.S.S.T#SYT#T#SYSYSKSKSYSKSKSKSMT#SM3=SMT$SMT$SYSKSKSKSK3;SKS@SKS@SKS@3:S@S@S@SKS@SKS@39SXSXSXSXSX39SX39SXSXSXS1S1S/S/S1S1S/S/S1S1S?S?S?S?36SUW<W<W<W'35VXVXVXVXVXWKWKVXWKVXWKX-VXX-VXTITITD3232S-S-S-S-S-S-S.S-S-S-S.S.30S.31SMSMSM31S.31S.S.313233SMT$T$T$33T$33T$XESKSKXRSQS@S@SQS@S331S3S3S3S331S331SOSOSOSOSOSO3131SG32SGSOSO32SGSGSWSWSW3132SGSWW>VXW>W>W>W>W431W431W4W4W>31W432W?W?WLW?W?31W?W?Y$W?W$31W?W?WCWCU+U+U=U+U+U+U+U=U#U#3.U#U#U#U#3.S7S7S73.S73.XRSNSNSJ3.SJ3.SJSJSJ3.SJSNSN3.SJSNSNS7S73.SJSOSGSO3.SO3.3/SISOSOSO3/SISISI3/S8S83/S8SOS>SOS>3.S>SISISI3.3/3030SWSWSWS>30S>S>30SWS>SWSWSW30SW30S>S>S>30WCWCWCUB30V$V$V$V$V$30V.30V.V.V(V(T=30V(V(30U@T=30T=T=30U@T=U@T=U@T=T=V(U#3/V(3/U#V(V(V(V(3/V(V(V(V(U@3.V(U@U@SN3.SNSOSOSO3.SOSP3.SPSP3.SO3/30S>S>SP30SPS6S6S6SPSPSP3/S6S6S63/SR3/SR30S630SRSRW4WCW4WCU=U=U=3/U=V,V,V,V,U<V,V,U<U<3-T5U<U<T5T53,TGTGTGTGTGTG3,TPTP3,V.TGV.3,V.TG3,TGV.V.T=T=T=SNSNT(T(SD3*SCSDSCSDSCSDSDSDSE3)S6S63)SRSD3)SDSDSDSD3)SDT53)T5T5T5T;T53)T/3)T/T/T83)T8T0T/T/T2T/T/T03(3)T0T0T03)T;T;3)T;3)3*T;T;T;3*T;TGT;3*T;T0T03*3+V.3+T0T0T0T0T0V.V.T0V.3*V.SC3*3+SESCSESESESCSCSC3*SESESE3*3*SSSSSSSESESSSSSESE3)ST3)XDXDXDXD3)XDXDT3T6T3T3T53(T53)T3T33)3*3*3+T73,T7T0T7T0T0T0T03+T0T0T5T5T0T03*T.T0T.T5T.T03)T.T.T5T.T5T.T03(3)UMUM3)UMUM3)UM3*UMT03*T03+T0T03+T0T03+T0UM3+UMUMUMV.V.V.3+V.V.UMUMUMV.UMUMV.V.3)V.3)UMT.T.UMUM3)UMUMUMT.T.3(SSSESEXCX:X?X:X:3'X:XDXD3'XBXBX:XB3'XBXDXD3'XBXDXDXBXBXD3&XB3'V,T5V,T5V,T5V,T5T5T5V,T5T5T.T53$3$XBX:XBV,V,V,T/T43#T4T43#T4T4T4T43#T4T4Y7Y73#3$Y7Y73$Y73$Y7Y7Y7YHYH3$YGYHYH3$3%YHYUYUYUY7Y7YGYGYGY=Y=Y=2Z3#X.X&3#3$X&X&3$X.X&X&Y43$3%Y@Y4Y43%Y@Y@Y@3%Y@Y@Y43%Y4Y43%Y4Y4Y'3%Y'Y'3%Y,3&Y,Y'Y'Y'3&3&Y,3'Y,YH3'YUYUYHYH3'YHY3Y3Y,Y,Y3Y3Y,3&Y,3&Y,Y,3&Y,Y,Y,Y3Y3Y,Y,Y33%Y3Y33%YUYUYUY,Z&Y,Z&Y,3$3%3&3&Z&Y,Y,Z&Z&3&Z&YLYL3&3'YLZ$Z$Z$YLYL3&YLYVYV3&3'YV3'YVYG3'YGYGYGZ&Z$Z&Z&Z&YEZ&YEZ&YEZ&Z&Z$Z$YEYEYEZ$YEYEYE2ZYEYE2Z3#YGYGY=YGY=Y=Y=Y=YNYNYNYN2YYN2YYGYXYXYGYGYXYXYG2XYGYGYXYNYX2XYNYN2XYNYG2XYGYG2XYNYGYGYNYN2XYGYGYGYNYNYGYGYG2WYXYNYNYNYN2VYNYNYN2V2WX.Y=Y=YNYNYN2VYNYG2VYNYNYNYNYN2VX.2VX.YNYNX.X.2VX.YNYGYGYGYN2UX.X.2UX.X.X.YGYGYG2U2UX.2VX.2VYGX.2WX.X.2WX.WIWIVNWIX.X.2V2WX.X&X&X&WHWHWHVYVYVYVNVYWHWGWHWHWGWGVYWG2RW=W=W=WGWGVYWG2QW=W3W3W=W32QW3V=2QV=U>2Q2RU>U>2RV=U>U>U>U>2RU>2RV=U>U>V=V=U>U>2QTETETETLTLTTTTUT2PUTUTTLTLUTTLV?2OTLTLTLTUTL2OV;V;2O2PTUTUUGTUTL2OTLTLUG2OTLTL2OUGTLUGTLTLTL2OUGTU2OTLV;V;TU2OV;V;2OV;UKUK2OUKUPUK2OUKUPUKUP2O2OU$U$U$Y6YIY6YIY6Y6Y62NY:Y:YIYIY@2MY@YIY.Y.2MY.2MY.YI2NY.2NY.Y.2NY'2O2PY.Y.2P2Q2Q2RYI2SY'Y'2S2T2T2UY.Y.2U2VY.Y.Y'Y'2V2WY'2WY'2X2X2Y2ZY,2Z3#Y'3$3$Y,3%Y,3%Y,Y,Y,Y'Y'3%3&3&Y,3'Y,3'3(3)3*Y,Y,3*Y,Y.Y.3*3+Y.Y.YIYI3*Y.YI3+Y.YA3+3,Y,Y,YAY,3+3,YIYI3,3-YIYIY,Y,3-Y,3-3.YIYI3.YIYIYIYIYIYI3.YIYIZ)YIYIZ)Z)3-YI3-YI3.3.YI3/YIZ)Z)3/Z)YIZ)YI3/YI3/YI3030YM31YMYIYI3132YMYM32YM3233YIYI33Y,343535Z&36Z&36Z&37Z&Y,Y,3738Y,Y,Y,38Y,3839YK393:YKYKY,Y,Y,YKY,39YKYK39YKY,YK39YKYKYKYI39YI3:3:Y,3;Y,3;3<3=3>3>3?3@Z)3@3AZ)Z)3A3BZ)Z)3BY,3C3DY,Y,Z#Y,3CZ#Z)Z)Y,Y,Y,Z#Z#Z#Z#3B3BYM3CYMZ)Z)YM3CZ)YM3CYM3CYMYMYMZ)Z)3C3D3DYMYMYM3D3EYMYMZ)YM3EYM3E3FY,3GY,Y,Y,3GY,Y,Z#Z#Z#Z#Z#YMZ#Z#YMYMY,3DZ#Z#Y,3D3EZ#YKYKZ#Z#YKZ#Z#Z#YMZ#YMYMZ#Z#YMYMZ#Z#YMYMZ#Z#3@3AYMY?YM3AY?Y?3AY?Z#Z#3AZ#Z#Z#Z#Y?YM3@3A3B3BY?3C3DYKZ&YKYKZ&Z&3CZ&YKYKZ#YKYKYK3BYKYKYK3B3CZ&Z&YKYK3B3CYKYK3CZ&3D3EYKYK3E3FYKYK3FY-YKYKY-Y-YK3EY-Y-Z&Z&Y-Y-3DZ&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z#3AZ#Z#3A3BZ#Y0Z#Z#Z#3B3BY03CY03CY-Y-Y-3CY-3D3EY-Y-3EY-Y03EY0Y03E3FY0Y03F3GY0Y03GZ#Y?Y?3G3HY?3I3IY03JY0Y?Y?Y?Z'3IZ'Z'Z'Z'Z'YPZ'Z'Z'YPYPY0Y03GY0Z'Z'YPZ'Y0Z'Z'Z'Z'Z'3E3FZ'Z'Z'3FY-Y-3FY03FY0Y0Y0Y-Y-Y-3F3FY0Y0Y03FY0Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-3D3E3E3F3G3HY03H3IY/Y0Y0Y03IY03IY03J3JY0Y+Y+Y03J3K3LZ'Y+Z'Y+Z'Y+Z'3KY0Y03KY/3KY/Y/Y/Y/Y/Y+3KZ&YEZ&3KYEYE3KYEZ&Y<Z&Y<Y<Y<Z&Y<YE3IY<Y<Z&Z&Z&3IZ&Z&Z&Y<YYYYY03HYYYYY/3HYYYY3HYYY<Y<Y/Y/Y<Y<3GY<3GY2Y/Y/3GY<Y2Y2Y<Y<Y23G3GY<3HY<Y<Y<3HY<Y23HY2Y2Y23HY23IY2Y23IY23IY<Y/Y/3I3J3KY/3KY/Y/Y/YEY<Y<Y<3JYEY<Y<YEY<Y<Y<Y<YGY<Y<YGYGY<Y<3GYG3HY<YGYGYG3HY<Y<Y<3HY<Y<Y<Z(Y<Y<Z(Z(Y<Y<3F3GY<Z(3GZ(Y<Y<YRYRYGY<Y<Y<Y<YGY<3EYG3EZ%Z%YGYG3EYGYQYQZ%YQ3D3EYQYQ3EYQYQYQ3EZ%Z%Z%Y<Y<Y<YG3D3EYGYGYGYG3EYGY<Y<Y<3E3EYGYGYGYG3EZ%Z%YGZ%YGYGZ%Z%YGYGYG3CYQYQZ%YQZ%YQYQYQYQZ%YQYQ3AYQZ%Z%WJWJ3@X.X.X.Z%Z%Y)Y)3?3@Y)Y)WJ3@WJWJX.X.3@X.VTVTVT3@VTVT3@VQVT3@VQVQ3@VQVQVQ3@X(3AX(W3W33AX'W3W33AX'W3W%W%W%3@3AWUWU3AWUWUWUW%W%W%WUWUX,WU3@X,X,3@X,WUWUWU3@U>TTU>3@U>3@U>TTTETETTTTTTTLTLTLTUTUTU3>TUTUTU3>3>U0U1U0TUTU3>3?TUTUTU3?TUV;3?V;TUTU3?3@TU3@3AUP3AU0TLU03AU03BU03BU53CU5TLU3TLTLU5U5TL3BTL3BTLTLUPUP3BUP3BUPUPUPU9U9U93B3B3C3D3EV;UP3EUP3EV;3FV;3F3G3H3IV;V;3I3J3JUPUPUPYB3J3KY>YBYBY>3KYBYB3KY>YBYBY>Y>Y>3JY>3K3KYI3LYBYBYIYBYBY>YBY>YBY>YBY>YBYBYBY>YBYBYB3HYB3H3IYBYB3IYI3JYBYIYI3JYB3J3KYBYBYIYBYBYB3J3KYIYIYIYMYIYIYMYM3JYMYIYIYI3JYMYM3JYM3JYM3KYMYIYIYI3KYIYMYIYI3J3KYMYMZ'YPZ'Z'Z'YPZ'3JYPYP3JYPZ'3JZ'Z'YPYP3J3KYPYJYPYJZ'3JZ'Z'3JYJZ'YJZ'3JYP3K3KY+3LY+YP3LYPYPY+Y+YPY+Y+3KY+3LYJYJ3LYWY+Y+3LY+Y+Y+3L3M3MYW3NYWYW3NYWYWY+Y+3NYSY+3NYSYS3NYSYSYSYSYSYWYSYSYS3M3NYSYSY*Y*Y/Y/3MY/YT3MYTYT3MY/YTYTYTYTY+Y+Y/Y/YT3LY/Y/3LY/3L3M3NYTYTYTY*Y*Y/Y/Y/3MY/Y/3MY/YT3MYTYTYTY/YTYTY/Y/YT3LY/Y/3LY/YTYTYT3LY*3LY*3MY*3MY*Y*Y9Y9Y*Y93LWZWZWZWZX/3LX/Y9X/X/X/X/X/Y93KX/X/3K3LX/X/3LX/Y9Y9Y93LX#X#Y9X#WZWZWZVWVWYGVW3JYGYGYGVWX/X/3IVW3IVWX#X#3IVWX#X#VWVW3IVWX/X/VWX/3HVWX/X#VWX#X#X#VWVW3GVWVWVW3GVWWSWSVS3GWSWS3GWSVSVSX#X#VSVS3FVSWSWS3FWSVSWSVS3F3FWSVSWSVS3FVSVSWS3FWS3GWSWSVS3GWSWS3GWSVS3GVSVS3GWSVSVSVNVNWP3G3GVNVNVNVNVN3G3H3HWY3IWYVNVN3I3JW#W#3J3KW#W#3KW#3K3LW#W#VNVN3L3M3MWYWYWYVNWYWYWY3L3MW,W,WYWY3M3N3N3OWYWY3O3PW,W,WYW,3PW,WYWYWY3PW,3PW,W,3PW,W,W,WYWY3P3QWY3QWYWYW,3Q3R3S3SWYWY3T3T3UW#W#3UW,W#W#W#W#W,W,W,3T3U3V3V3WW#3XW,W,3XW,WSW,3XW,3XW,WSWSW,W,3XW,3XWYWYWY3X3YWYWYWYWY3YWYWYWYWY3Y3YW#WY3ZW#W#3Z4#4#4$4%W#4%4&W#W#W#4&W#W#4&4'W#W#VNVN4'4(VNVN4(4)WUWUWU4)WUWUWUWM4(4)4*WMWU4*WUWM4*WMWMWMWM4*WTWTWMWMWM4*4*4+WTWT4+WTWTWTWU4+WUWUWUWM4+WM4+WUWMWMWUWU4+X+WMWMWM4+WT4+WTWT4+WTWTWT4+UYU>UYU>UYU>4+4+4,U>UYUYUYU>UYU>U>V:V:U>U>4*4+U>U>V:V:4*4+V:V:4+4,4-UY4-TTTTTTUYTTUYTT4,TTUYTT4,U/U/U/4,U/U/U/UU4,UUUU4,TT4-TT4-TLTLTLTL4-TLTLTL4-TLU:4-UPU:UPTL4-TLUPTLUP4-UPUPUP4-UPUPUP4-4.TLUP4.UP4.UPTLUPYBYB4.YBYBYBS:S:YBYBYB4-YB4-S:S:S:S:S:4-4-4.S:4/S0S04/S04/S0S:S0S0T'S0S0S0T'S0T'S0S0S0T'S0T'T'T'T'T&T'T&4*Y9Y9Y9Y9Y94*Y9Y*4*Y*Y*Y*Y9Y*XVY9Y9Y94)W-W-4)W-4)4*WFWFY9Y9W(W(Y9Y94)Y9Y9Y9Y94)W(4)W(W(Y9W(W(W(W(W(4(W(4(WFWFWFVZ4(VZVZ4(4)VZVZVZVZVZ4)VZVZ4)W(W6VZW6W6VZ4(W6W6W6W6W64(W6W64(4)W64)W64*VZ4*4+W(4+W(W6W(4+4,VO4-W(W(4-W(W6W6W.4-4-W6W6W6W6W6W6W/4,W/W/VOW6VOW64,Y9Y9W(W(4+Y9W(W(Y9Y9Y94+W(4+W(W(W(VU4+VUY9Y94+Y9Y9Y9W(4+Y9Y9VUVU4*VUVUVUY9Y9VU4*Y9Y94*VUX#X#4*X#VUX#VU4*X#X#VUVUX#X#VUX#4(X#VUX#4(X#X#X#VU4(VU4)4)X#4*X#X#X#VUX#4)X#VUVUX#X#VU4)VUX#VUVUVUX#VUVUVUX#VUX#VU4&4'VU4'X#4(X#X#VSX#X#VSVS4'4(VSVS4(4)4)4*X#VSVSVSVSW7VSVSW7W74(WS4)4*X#W7X#X#4)W,4*4+4+W7W7W7W7W74+W9W7W7W9W9W74*W9W9W9W9W7W9W7W7W74)4)4*W7W74*4+4,W9W7W9W9W94+W9W9W9W94+W9W9W94+W9W9W<W<4+W<W<W<W9W<4*W<4+W9W<W<4+W<W9W9W94+W<W<4+W<W9W9W94+W94+W9W<W9W<W<W<W9W<W<W<WTWTWTX%TLTL4(TLUEUEULUETMTMTM4'TM4'TM4(UETLUE4(UE4(UEUETLTL4(TLULUL4(UI4(4)UEUETLTLUE4)UIULUIULTLTL4(UETL4(UPUPS9S9T&S9S94'S9WQ4'WQWQWQ4'4(W@VU4(WQWQWQWQVV4(VV4(VVWQVVVVWNWNWNW+WEW+4'W+4'W+W+W+4'W+WE4'WEWEWE4'W+W+W+4'W+4(WEW7W74(W9W9W94(W94(W9X#W9W9W9W94(W9W<4(W<W<W<W<4(W<4(W<W<W<4(W<W<4(W:W<W:4(WUW:W:W:W:4(W<W<4(W<W)W<4(W<W<W<4(W<W<W)W)W<W)W)W<W)W)W<W<4&W)4&4'W)W)W)W)4'W)W<4'W<W<4'W)W<W)W<W<W)W)W<W<W)W)4%4&4'4(X-WUX-4(WUWU4(4)WUWU4)WUWUWU4)4*UFUF4*UIULUL4*UIUHTH4*TH4*THTHTHUHTHTHTHTHTHTA4)V5V<V54)4)4*4+4,V3V3V3T,SA4+SASZSZSZS=4+WQWQ4+WQW)W)W)X-4*X*VXVXX*X*VX4*X*X*4*VXX*X*4*4+VXX*4+X*WU4+4,WU4,W14-4.4.U*UIU*T:T:TI4.TQTQTITI4-TITDTIV#V#TITIS4S4S44,S=S=4,S4S44,S=S=S4S=S=S=S=S=S5S54*4+S.S.S-S.4+S.SMT$SMT$S@4*S@S@SKS@SKS@4)SXSXSXS@SX4)SXS@4)SXS@4)SUSUSUX-VXX-VXTDTDTD4(S-S-SVS-S.SM4'SM4'SM4(SMSMT$SMT$S.SMS.S.SMSM4&4'SM4'4(4)S.SMS.S.T$T$T$4(T$4(T$T$S3S3S34(S3S3S34(SFSFSOSFSO4'SOSGSGSG4'SG4'SGSOSGSOSOSOSGSGSGSG4&4&SW4'SWW>W>W4W4W>W>W4W>W>W>4%4&4&4'W4W4W?W$W?W?W$W?4&W$U#U#T-4&U#U#V(U#S7S7SNS7S7S7S7SNSNSJSNSJSJ3ZSJSJ3ZSJ4#4$SJSJSNSN4#4$4%SJ4%SG4&SGSGSGSG4&SO4&4'SISO4'SO4(SI4(SISI4(S8SOS8SGSG4(SISISISI4(4(S8S84)S>4)S>S>SGSWSGSWSWSWS>4(SWSW4(SW4(SWS>SWSWS>S>S>WLWC4'WCUBV$V$V$V$4&V$TPV.T-V.V.V(V(4%4&V(V(4&4'4'4(T=T=T=4(T=T=V(U#V(V(U#U#U#4'V(V(U@4'V(V(4'V(SNSOSNSO4&SOSPSO4&SOSPSPSOSOSPSOSPSPSP4%SOSOSPSOS>S>SP4$SP4$SPSPS6S64$S64$S6SR4%SR4%SRSRS6S64%S6U=4%V,V,4%T1T1T5U<U<U<4%TGTG4%TGTPTPTP4%TGTGV.V.TG4$TGV.4$SPSDSDSESDSESES64#SRS6SD4#SDSDSDSD4#SE4#T1T5T5T04#T0T0T8T8T/T8T8T0T8T0T/3YT/T/3YT0T/T0T0T0T03YT;T;T03YT03YT0T03YT;T;T;3YTGT;TG3Y3ZT;4#4#V.V.V.4#V.V.V.T;4#T0T04#V.V.V.SCSC4#SESCSCSC4#SCSESESESESE3Z4#SE4#SE4$SESTSTSTX;X;X;XD3Z4#XDXDT3T34#T34#4$T5T54$T3T54%T3T34%T3T74%T7T7T0T04%T0T7T0T7T04$4%T.T.4%T0T.T.T04%T.T.4%V.4&UMT0UMT0UMV.V.4%4&T0UM4&UM4&UMUMUMT0T0T04&T04&T0T04&T0T.4'T0T0T0UMUMUM4&UMV.V.4&4'V.V.4'V.T0T0T.T.4&UMT.UM4&SSSESSX<X<XDX<XDXD4%XDX:XBX:XBXB4$XBXBXDXD4$4%4%XBXBXBT54%T5T5X:XBX:XB4$4%T4T44%4&T4T4T44&T4T4YU4&YUYU4&4'YU4(Y7Y74(Y74(4)Y7Y7YHYGYGYGYHYHYGYGYHYHYGYGX.4&X.X.4&X.X&X&X.X.4&4'X.X.X&X&X.X.X&4&Y44&Y@Y@Y44&Y@Y@Y44&Y@Y@Y@Y@4&Y@Y44&Y4Y4Y@Y@4&Y@Y'4&Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,4$Y'Y,Y,Y'Y,4$Y,4$Y,Y,Y,YHYUYUYUYHYH4#4$Y3Y3Y34$Y,4$Y,Y,4$Y,Y,Y,4$YUY34%Y3YUY3Y3Y,Z&Y,Z&Y,Y,Y,4#4#Z&4$Z&4$Z&Y,Y,Z&Z&4$Z&4$4%Z$Z$YLYLZ$Z$YLYLZ$Z$YL4#YLYL4#YV4$YVYVYGYVYVYGYG4#YGYEYGYEYEY=Y=YGYGY=Y=YGYGY=YNY=Y=YGYGYGYXYXYXYGYXYXYNYXYXYNYN3TYNYGY=YGYGY=Y=YGYGYNYGYGYGYGYGYGYNYXYNYNYNYNX.3OX.YN3OYNX.YNYNYN3OYNYN3O3PYNYN3P3Q3QX.YNYNX.X.3QX.3QX.X.X.YG3QYGYGYG3QYG3RYGYG3RX.3RX.X.X.3R3SYGYG3SYGX.X.3SX.WOWOX.3SX.X.3S3TX&X&3T3UW=W=W=W=W=3U3UW3W3W3V=V=V=3UV=V=3UV=V=V=V=3UV=V=3UV=V=U>V=U>V=V=3T3UU>TETETEUT3TUTUTV?V?3T3UUGUG3UUGV;V9V;3UV93U3VV;UGUGTLTLTUTUUGUG3TUG3UTLTL3UTLTL3UTU3VTLV;V;TUTUV;V;3UTUUKUK3U3VUPUPUP3VUK3VUPUPU-U$U$U$Y6Y6Y6Y:Y@Y@Y@YIYIY.YI3SYI3SYIYIYIY.YIYIY.Y'Y.Y.Y'Y'3QY'Y.Y'Y.Y.3PY.Y.Y.Y.3P3Q3R3R3SYI3TY.3TYIYIY.Y.3T3UYI3UYIYI3UY'Y.Y.3U3VY.Y.Y'Y'3V3W3WY'Y.Y.3WY'Y.3XY'Y'3X3Y3Y3ZY.Y.3Z4#Y.Y.Y'Y'Y'4#4#4$Y'4%Y'Y'4%4&Y'Y'4&Y,Y,Y,4&Y,Y'4&Y'Y'Y'4&Y'Y'4&4'4(Y,4(Y,Y,Y,4(Y,Y,Y,Y'4(4)4*Y'Y'4*4+Y'4+Y'4,4,4-4.4/4/Y,40Y,Y.40414242Y,Y'434344Y.Y.Y'44Y.Y.Y,Y,44Y,YI44YIYI4445YIYI4546YIY.Y.Y.YIYIY.YAY.45YAYA45YAY.45464747YA4849YAYA49YA49Y,4:Y,Y,Y,4:4;YI4;YIYI4;4<YIYI4<Y,YIYIYIYIYIZ)Z)Z)Z)4;YIYIYI4;YI4;YIYI4;4<4=4>4>YIYIYIZ)Z)4>4?Z)Z)YIYIYI4>YMYMYIYMYI4>4>YMYMYMYMYM4>YMYI4>4?YMYIYMYMYM4>YMYMYMY,Y,YIYIY,Y,YI4=Y,Y,4=Y,YI4=4>4?4?Y,Y,Y,4?Z&4@Z&Y,4@Y,4AY,4A4BZ&Y,4BY,Y,Y,Y,YKYKY,YK4AYKY,Y,Y,4A4A4BYKYK4BYKYKYK4BY,4CY,Y,4C4D4EY,Y,Y,YKYKYKY,Y,Y,YKYKYK4B4C4DY,4DY,Y,Y,YIY,4DY,4DY,4EY,4EY,4F4GY,Y,4GY,4G4HZ)Z)4H4IZ)Z)Y,Y,Y,4IY,Y,4IY,4IZ)Z)Z)Z)4IZ)4J4J4KZ)4LY,Y,4LZ)Y,Y,4LZ)Y,Y,4LY,Z)4LZ)Z)4LZ#4MZ#Z)4MZ)4NZ#Z#4NYMZ)Z)Z)YM4MYMYMYM4M4NYMZ)Z)4N4OYM4O4PYMYMZ)4PZ)Z)4PYMYMYM4PZ)YMYMYMZ)YMYMYMYM4OYM4O4PYMYMY,4PY,4Q4Q4RZ#Z#Z#Z#4RZ#Y,Z#Z#Z#4QZ#Y,Y,Y,Y,4Q4RY,Y,Y,4RZ#Z#YMY?Z#Z#Y?4QYM4QYM4RY?Y?4RY?Z#Z#4RZ#YM4RYMYMYMYMYMZ'YMYMZ'4Q4QY?4R4SYM4SY?Y?4SY?Y?Y?Z&Z&YKYKYKYK4RYKYKYK4R4SYKYK4SYKZ&Z&4S4TZ&Z&YK4TZ&Z&4T4UYK4UYKYK4UZ&4V4WYKYKYK4W4WYK4X4YYKYKY-Y-YKY-4XY-Z&Z&Y-Y-Z#4WZ#Z#4W4X4Y4Z4ZZ#Y0Y0Z#4Z5#Y0Z#Y0Y0Y0Z#Y0Y0Y04YY-Z#Y-4YY-Z#4ZZ#4ZZ#5#5#5$Y0Y0Y-Y-Y05$5$5%Y0Y0Y-5%Y0Y05%5&Y0Y05&5'Y0Y05'5(Y0Y0Z#Z#Z#5(Z#Y?5(Y?Y?Y0Y?Y?Y?Y?Y?Z'Y0Y05&Y05&Y0Z'Z'Y?5&Z'Z'Y0Y05&Y0Z'5&Z'YP5&Z'YPYPZ'Z'YP5&Y0Y05&Y0Y-Y-5&Y-Y-Y0Y0Y0Y-Y-5%Y05%5&Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-5$Y-5%5%YYYYYY5%5&5'Y0YYYY5'YYY0Y/5'Y/Y05'Y0Y/Y0Y0Y0Y+Y0Y0Y05&5&Y+Y+Y+Y0Y05&Y0Y0Y05&Y0Y+Y/Y+5&Y/Y/5&Y/Z'Z'Z'Y+Y05%Y0Y0Y0Y/Y/Y/Y+Y/5$Y/Z&YEZ&Z&YEYEZ&5#YEYE5#5$Z&Z&Z&Y<Y0YY5#Y/Y/5#Y/Y/5#YYY/Y/5#5$Y2Y2Y2Y2Y/5$Y25$Y25%Y2Y<Y2Y2Y2Y<Y2Y<Y2Y<Y2Y2Y2Y<4Z5#Y25#Y2Y2Y25#Y25$Y25$Y2Y2Y2Y2Y25$Y/5$Y/Y/Y<Y<Y<5$Y<Y<5$Y/Y/5$Y/Y/Y<5$Y/Y/YEYEY<Y<YGYG5#YGY<5#Y<Y<5#5$Y<Y<Y<YRYRYR5#5$Z(Z(5$5%Z(Z(5%Z(Z(Z(5%YGY<YGYGYGZ%Z%YGYG5$YGYGYGYQYQYGYGYQYQYGYGYQYG4YZ%Z%Z%Y<Y<YGYGY<YGYGYG4WYG4X4YY<Y<Y<4YY<YG4YYGYGYG4YYGYGYGYQYQYQYQ4XYQYNX.X.X.Z%Z%Y)Y)4VY)Y)Y)X.4VWJWJX.X.X.4VVTVT4V4WVTVTVQVQVTVTVQ4VVTVT4VVQX(X(4VX(4VX(X(X(X'4VX'X'4VX'X'X'WU4VWUWU4V4WWUWUW%W%4W4XWUX,WU4XX,X,4XX,WUX+X+X+U>TT4WTT4WTTU>TTTUTU4WTUTUTUTU4WTL4WTLTLTUTU4WTUTUTU4WTUTU4W4XV;4X4YV;V;TUTUTU4YTUTU4Y4Z4ZV;TUV;TUTU4ZUPTLU0TLU0TLU0TLU0TLU0TLU0TLU5TL4W4WU5U5TLTLU4TL4WTL4WTLTLUPUP4WUP4WUPUPUPU9U9U9UPU94VU9U9UPUP4VUPU9U9UPUPU9UPUPUPV;UPV;4T4TV;4UV;4UV;4VV;V;4VV;V;UPUP4VUPV;V;UPUP4UUPUPUPV;V;V;4UV;V;4UUP4UUPUPUPYBYB4UY>4UY>Y>Y>YBYBY>Y>YBYBY>Y>YBYB4SYB4SYBYBYBYBYI4SYI4S4TYBYBYBYB4TYBY(4TY(Y(4TYIYBYBYIYI4T4U4UYIYBYBYBYIYBYBYIYI4T4UYIYI4U4VYI4VYIYIYMYMYIYIYM4UYIYIYI4UYIYIYMYMYIYIYIYM4TYM4TYMYIYMYIYIYIYMYM4SYM4T4TYM4UYMYPYPZ'YPYPYPZ'YP4SYPZ'YPZ'YPZ'Z'YPYP4RYPZ'4RZ'Z'Z'YPZ'4RZ'Y+YPYPYPYPYP4QY+Y+YPY+4PY+Y+Y+YP4PYPY+Y+Y+Y+YTY+YTY+Y+YJYJYJYWYJY+Y+Y+YWY+YWYWY+Y+YWY+YJYWYJYWYJYWYJYWYWYS4H4IY+Y+YS4IY+YSYSYSYSY+YSYSYSYSY*Y*YSYSY*Y*4EY/4F4GYT4GYTY/4GY/Y/Y/Y/Y/YT4GY/Y/4GY/Y/Y/Y/4GY/Y/4GYTY/4GYTYTY/Y/Y/4GY/Y/4GY/YT4GYTYTY/Y/YTYTY/Y/YTYTYTY9Y9Y94DY94EY9Y*Y9Y9Y9Y*4DY*4EYGYGYG4EX/X/Y9X/Y94DY9Y94DY9Y9Y9Y9X/Y9Y9X/X/4CX/Y9X#4C4DVWYGVWVWVWVW4CVWVWVW4C4D4DVWX#X#VWVW4D4EX/VW4EVWVWVWX#X#VWVW4DVW4DWSVSVSWSWSVSVSVSVS4CVS4CWS4DWSWSWSVSWS4CWSVSWSVSWSVS4CWSWSWSWYWS4BWSWSWSWSVSVSWSWSVS4AVS4AVS4BWSWS4BWSVNVN4B4CWPVNVNVNVN4BVN4C4C4DWYWYVNVNVN4D4DWYWYWYVNVNW#W#VNVNW#W#W#W#W#4BW#W#4B4CW#W#WY4CW#4CW#W#VNVN4C4DVNWYVNWY4CWYWYWY4CWYWYWYWYWYWY4CWYWY4CWY4C4DW,W,4D4EW,W,WYWY4E4FWY4FW,W,4F4GW,W,4G4HW,W,WYW,W,W,WYWYWYW,WY4FW,W,4FW,W,W,WYW,W,W,WYWYW,WY4D4EWYWYW,4E4F4GW,WY4G4HWYWY4HWY4HWYWYWYWYWY4H4IW,W,W,4IW,W,4I4JW,W,W#W#WYWY4I4JW#4JW#W#4JW#W#W#4JWY4KW#4KW#4LW#4L4M4N4OW,W,WSWSWSW,WSW,4M4NWSWSW,W,W,4NW#4NWYWYWY4NWYWYW#4N4O4PWYWY4PWYWY4P4QW#W#W#W#4Q4Q4RWYWYW#W#4R4SW#W#4S4TWYWYWY4TWYWY4TWY4TWYW#W#4T4U4V4W4W4XW#W#4X4YW#4ZWY4Z5#W#5#W#W#W#W#5#W#W#5#W#W#W#W#5#W#W#5#W#W#W#WUWU5#5$WUWUWU5$WUWM5$WMWU5$WMWMWU5$WUWMWUWU5$WMWMWMWT5$WM5$WTWTWM5$5%5&WMWMWTWTWMWT5%5&WUX+WU5&WU5&WMWMWUWU5&WMWUWUWUX+WMWT5%WTWM5%WTWTWM5%5&WTU>UYU>UYUYUY5%UYU>5%U>U>5%UYUYUY5%5&V:V:5&V:V:V:U>U>V:5&U>U>5&5'U>5'V:UY5'UYUYUY5'UYU/U/5'5(5)5*UYTTUYTT5)5*U/U/5*5+U/U/5+5,UU5-TTTT5-TT5-TTUUUU5-TLTTTLUPUPTLUPTLTLU:U:U:UPU:U:TL5*UPUPTLUPUPUPTLUP5)UPTLUPTLTLUPUP5(UPTLTLTL5(TL5(TLTL5(YBY>YBYBYB5(YBYBS:5(S:5(S:S:S:S:S0S:5(S0S05(S0S:S0S:S:S0S05'S05'S0S:S0Y9Y9Y*Y*Y9Y9Y*Y*Y*Y9Y*Y*Y9Y9Y9Y*W-W-5#5$WF5$WFWFW-W-WFWFY9Y95#W(Y95#W(W(Y9Y9W(Y94ZW(W(W(W-4ZWFWF4Z5#VZVZ5#5$VZVZ5$5%VZW(VZVZVZ5%VZVZ5%W(VZ5%VZW6W6W6W6W/5$5%W/W/W6W6W6VOW6W/5$W/W6W/W6W6VZW(VZW(VZVZ4Z5#W65#W6W6W6W(VOVOW(W(VO4ZVO4ZVOVO4Z5#VOVO5#W65$W6W.5$S9W6W6W/5$W/5$VO5%VOY9Y9Y9W(Y9Y9W(5$W(W(W(5$W(5$VUVUY9Y95$Y9Y95$VUVUW(VUW(VUVU5#VUVU5#VUVUVU5#X#5$X#X#X#VUX#VUX#VUX#VUVU4Z5#VUVUVU5#VU5#VUVUVUX#5#X#5#X#VUX#VUVUVU5#5#5$VUVU5$5%VU5&VUVU5&VUX#X#5&X#VUX#VU5&VSVSX#5&VSVS5&X#VSVSX#5&VSVS5&VSX#5&X#X#5&VSVSVSWSWSW7WSW75%W7W75%W7W7W7W,W,5%W,W75%W7W75%W,5&W7W7W75&W75&W95'W95'W95(W9W7W9W7W9W75'W7W75'W9W7W9W7W7W75'W7W7W75'W75'5(5)5)W95*W9W9W<W95*W95*W9W9W9W<5*W<W9W<W9W<W9W<W9W95(W<W9W<W95(W95)W<W<5)W<W9W95)5*5*W<W9W<TLTL5*5+TMTMULTMULUL5*UL5*ULTMUL5*TL5+TL5+TL5,5-TLTLUETLUI5,UIUI5,TLUE5-TLTL5-TLUE5-UE5.TLTL5.UETL5.UPUPS9S9S9WQ5-WQWQWQVU5-W@VU5-X#VUVUW@5-WQWQWQWQWQVVWQVVWQVVW+WEW+WEW+WEW+5*W+5*W+5+5+WE5,WEWEWE5,W+5,W+W+W+W+W+W+WEX#W9X#W9W9W95*W95*W9X#X#W9W9W9W<W9W9W9W<W<W<W<5(W<5(W<W:W<W:W<5(W:W:5(W:WUWUW:5(5(5)W<W<W<W<W)W<W<W<W<W)W)W)W<W)W<W<W)W<W<W<W)W)W<W)W)W)W)W)W<W<W<4ZW<W<4ZW)W<W)W)W)W)4Z4ZW<5#W<W)5#W)W)5#W<5$W<WUWU5$5%WUWU5%5&WUWU5&5'WUWU5'WUWUWU5'WX5'WUWXWUT>T>T>5'5'5(UIUIUHTHUHTHUHTHUHTH5&THTATAV<V<V5V5T+T+T+5%T+T+5%UCUCU?U?U?5$V1V1V1SASZ5$SZSZSZS=S=WQWQWQVMX-X-4ZX-X*4ZVX5#X*5#5$VXVX5$VX5%X*X*5%X*VX5%VXVXWU5%WUWU5%5&5'5(5(W1W1W1W1W1WUWUW1W1WUWUUIUIUIU*T:T:TITITD5$TD5%S4S45%S4S=S4S4S4S45$S4S4T#T#S.S.T#T#S.S.S-S-S-S.S@4YS@S@4YSX4ZSXS@4ZS@S@4Z5#S@S@S?S?S?SUTDTI4ZTIS.SMS.SMS.SMS.SMS.SMS.S.4WSMS.4XSMSM4XSM4XT$SMT$SM4XSMSM4XT$T$T$T$4XT$4YT$4YT$4Z4Z5#SJSJS3S35#5$SO5$SOSGSGSG5$SGSO5$SOSOSG5$SGSWSGSGSGSW5#SWSWSWW>W>5#5$W>W>5$5%5%WVWVWVWVWV5%5&W$5&W?W?5&U#5'U#SJS75'S7SNSNSJSJSJSJSNSJSJSJSJSNS75$S75%5%5&SJSJS7SJSJSJSOSG5%5&5&SGSOSGSGSGSISGSOSO5%SISO5%SOSISOSI5%SI5%SISOSOSISISIS8SO5$SOS8SGSGSG5$SIS>SIS>5#5$S8S8S85$S8S85$S>S>S>SWSWS>5$SWSW5$SWS>S>5$SWWLWCWCWCV$5#V$TPT=V(V(V(V(V(4ZV(T=V(T=4ZV(U@U@U@V(4YT=T=4YT=T=T=4YU@T=T=U#V(V(V(V(V(U@U@V(V(U@U@4VSOSPSPSOSPSPSPSP4USPSPS>S>SP4U4US6SPSPS6S64US64US6SRS6S6S6SR4USR4USRSR4US64V4WU=V,V,V,4VT1T1T1U<4VTGTGTGTG4VTGTPTP4VTPTGTGTG4V4VSPSDSPS6S6S64VSDSDSD4V4VSESESET1T1T5T1T0T;T0T0T/4TT/T/4TT0T/T0T0T0T04TT0T;T04TT04TT0T04TT;4UT;4UTGT;TGT;T;T;4UV.V.4UV.4UV.T0T0T04UT0V.T0T04U4VT;T;4V4WT04WV.V.SCSCSCSESCSCSC4VSE4VSSSS4VSSSSSSSESE4VSS4VSSSSSSX;4VXDXD4VXDXDXDT3T3T5T3T54UT5T5T3T34UT5T3T3T54U4U4VT5T5T3T34VT5T0T0T7T0T0T04U4VT04VT0T.4V4WT.4XT0T0T.T.4WT.T.T.T0T04WV.4WUMUMUMUMV.UM4WV.V.4WV.T0T0T04W4WUMT0UMT04WT0T0T04WT04XT0T04XT0T0T0T.4XUMUM4XUMV.V.V.4XV.V.4XV.4XUMUMUMUMUMT.4XSESSSE4XXDXD4X4YXB4YXBXBXDXD4Y4ZXDXD4ZXBXB4ZXBXB4ZT.T5T54Z5#T4T4T/T/T4T4T/4ZT4T44ZT/T4T4T/4ZT4T4YUY7YU4ZY7Y7YUYUY7Y74YY7YU4YYUYU4YY7YUYUYUYUYUY7YU4XY7Y7X.X.X.4XX.X.4X4YX&4YX&X&4YX&X&X&4Y4ZX&X&Y4Y44Z5#5#5$5%Y@5%5&Y@Y@Y@Y@5&5'5'Y4Y4Y4Y@Y@5'5(Y,Y,5(Y,Y'Y'Y,Y,5'Y,5(Y,5(Y,5)Y,YHYH5)5*YHYH5*YHY3Y3Y,Y,Y35)Y,Y,5)Y,Y,Y,YUYUY3YUY3YUY35(Y,Y,Y,Z&Y,Z&Y,Z&5&Z&Z&Z&Y,Z&Y,5&Y,5&Y,Z&YLYLZ$Z$YLYLZ$5%YV5%YLYLYVYV5%YV5%YLYLYL5%5&5'YG5'5(YXYNYNX.X.X.YN5'YNX.YNYNYN5'YNYN5'5(YNYN5(YNYNYN5(5)5)X.5*X.X.X.YNYNX.X.5)X.YNYN5)X.5)5*YGYGYGYGYG5*YG5*YGX.YGYGYG5*5*X.X.X.YG5*X.X.YGYGX.YGYGYGX.5)X.X.WO5)X.X.X.X&5(5)X&X&5)X&X&X&WGWGW=5)5)WGW=W=W35)W3W3W=W=W=W3V=V=V=5(V=V=5(V=V=V=V=5(V=V=5(5)V=V=V=5)V=V=5)V=5)TLUT5*5*5+V?TL5+TLTLTL5+UG5,5-5-V9V;5.5.V;V;V;5.5/V;V;UGUG5/UG5/50TLTLTLUGTL50UGUG50TU50TLTLTL5051TUTUUKUKUK51UKUK51UKUPUKUPUKUKUK50UKY.Y.YI50YI50YIYIY.Y'Y.50Y'Y'Y.Y.Y.Y.5/505051YIYI51YIYIYIY.Y.5152Y.Y.52Y.5253YI54Y.Y.Y.545455YIYI55Y.56Y.56Y.YIYIY'Y'56Y'Y'Y'56575758Y.Y.Y'Y'5859Y'Y.595:Y'Y'Y.Y'Y'Y'Y'Y.Y.Y'Y.Y.57Y.Y.Y.Y.Y'Y.57Y.57Y.Y.Y'Y'57Y.Y'57Y.Y.57Y'5859Y'Y'Y,Y,Y'58Y'Y'Y,Y,Y'Y,Y'57Y'Y'Y'57Y,Y,5758Y,Y,Y'Y'Y,Y,Y,Y,57Y,Y'Y,Y'Y'Y,56Y'57Y'Y'Y'57Y'5758Y,Y'Y,Y,Y,Y,Y,57Y,57Y,Y,Y,Y'57Y'Y'5758Y,Y,58Y,Y,Y,58Y.Y.Y.Y'58Y.59Y'Y'Y'59Y'59Y'5:Y'5:Y'Y'Y,Y,5:Y,Y'Y'Y'5:Y,Y,5:Y,5:5;Y,Y,5;Y,5<Y,5<Y'5=Y'Y.5=5>5?5?Y'Y'Y'5?Y'5@5A5A5BY'5C5C5DY.5EY'Y'5EY'5E5FY'Y,Y,Y,Y.Y,Y.Y.YIYIY.Y.YI5DY.Y.5DY.Y.5DYIYIYIY.YIY.Y.YAY.5CYAYA5CYAY.Y.Y.5CYI5CYIYI5C5DYIYI5DYAYAYAYAYA5D5EYAYAYA5EYAYA5EYIYAYA5E5F5FY,YAY,YI5FYI5GY,Y,5GY,5GY,YIYI5G5H5IYI5I5JYIYIY,Y,5J5KZ)Z)YIYIYI5JZ)Z)Z)5JYIYI5J5K5LZ)5L5MYIYI5MZ)Z)5NZ)YI5N5O5O5PYIYIZ)Z)YIYIZ)Z)YIYIYIYIYMYMYIYMYI5MZ)Z)YMYMYMYM5LYMYIYI5L5MYIYMYIYI5LYMYMYMY,5LYIYIY,Y,5LY,YI5L5M5NYIYI5NY,5NY,Y,Y,5NY,Y,Y,Y,Z&5NZ&5NZ&5OZ&Y,Z&5OZ&5OZ&Y,Y,Y,5OY,5PY,Y,Y,Z&5OZ&5PZ&5PYKYKYKY,Y,Y,5PY,Y,YKYKY,Y,YKYKY,YKYKYKY,Y,5MY,YKY,YKYKY,5L5MZ&Y,5MY,5N5NZ&Z&Z&YIYIYI5NYI5N5OY,YI5OYI5P5P5Q5RY,YIYIYI5RYI5RYIYIYIY,5RY,5RY,YIY,5RY,YI5SY,Y,5SY,Y,Y,Y,5S5SZ)Z)Z)5S5TZ)Z)5T5UZ)Z)Z)5UZ)Z)Y,Y,Y,5UY,Y,5UY,5U5VZ)Z)Z)Y,Z)Z)5UZ)Z)Z)Y,Y,5UY,Y,Y,5UY,Z)Y,Z)Z)Y,Z)Z)Z)5S5TZ)Z)Y,Y,Z)Y,Y,Y,Z)5SY,Y,Z#Z#5RZ#5SZ#Z)Z#Z)5S5SZ#5TYZZ#Z#Z#YMZ)Z)Z)YMZ)Z)YMYMZ)Z)YMZ)Z)Z)Z)YMZ)Z)Z)5O5OZ)5P5QZ)YM5QYMZ)Z)Z)5Q5QYM5RYMYM5RYMYMZ)5RYMYMZ)Z)Z)5RZ)YM5RYMY,Y,Y,5R5RZ#Z#Z#Y,Y,Z#Z#5QZ#Z#Z#Y,Z#Y,5QY,5QY,Z#Y,Y,Y,5QY,Y,5QZ#Y,Y,Y,Z#Y?Z#Y?Y?YMYMYMY?5NY?5O5PY?Y?5PY?Z#Z#Y?Y?YMYMYM5OY?Y?Z'5O5OY?Y?Y?5O5PYMYMY?Y?5P5QYMYM5QYM5QY?5R5SYKYKZ#YKYKYKYKZ#YKYKZ#5QYKYK5QYKZ&Z&YKYKZ&YKYKYKZ&Z&YK5OZ&Z&5O5PZ&Z&5PZ&YK5PYKYK5PZ&YK5QYK5QYKYKZ&Z&5QZ&YKYKYKY-YKYKYK5P5PY-Y-Y-5PY-Y-Y-YKY-Y-Y-YK5OZ#Z#Z#Z#Z#5OZ#Z#5OY0Z#Y0Z#Z#Y0Y0Z#Z#Z#Z#5MZ#Z#Z#5MZ#Z#5MY0Y05MYKZ#YKZ#5MZ#5N5N5OZ#5PZ#5PZ#5QZ#5QZ#Y05QY-Y0Y0Y-Y-Y0Y0Y-Y-Y05PY05PY0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y05NY-Y-5N5OY-Y-5O5PY-5PY0Y05PY-Y0Y05P5QY0Y0Z#5QY?Y?Z#5Q5R5SY0Y05SY05SY0Y?Y?Y?Y?Y?5SY0Y05SY0Z'Z'5S5TZ'Z'5TZ'5TZ'YP5UY0Y05UY0Y-Y-5U5VY05VY0Y0Y-Y0Y0Y05UY0Y0Y0Y-Y-Y-5UY-YYYYYYY-YY5TYYY-Y-Y-5TYYYY5T5U5U5VY0Y0YYYYY0YYY0Y/Y/Y/Y0Y/Y/Y/Y0Y0Y05SY05SY+Y+Y0Y05SY0Y0Y0Y05SY+Y/Y+Y+Y/Y/5R5SY05SY0Y/Y+Y+Y+Y/5RYEZ&5SY<5SY<Y<5SY<Y<Y<Y0Y/Y/Y/YYYYY/5RYYYY5RY/Y<Y<Y2Y2Y<Y<5QY<5QY2Y/Y2Y<Y<Y2Y2Y25PY2Y2Y2Y<Y2Y2Y<Y<Y2Y<5NY<5OY<Y<Y<Y25OY25OY25PY25PY2Y<Y2Y2Y<Y<5OY<5PY<Y<5PY<Y/5PY<Y/Y/5PY/Y/Y/Y<5PY/Y/YGYGY<5P5PYGY<YGYGYGY<Y<YGYGY<Y<Y<Y<Z(Z(Y<5MZ(Z(5MZ(Z(Z(5M5NZ(Z(Y<Y<Z(Z(YGYG5M5NYGYGZ%Z%YQZ%Z%Z%YGYGY<YGY<5K5L5MYGYG5MYGY<YGYGYGY<YG5LYGYGYGYG5LYQYQZ%Z%Z%Z%5KY)X.X.WJWJX.X.VRVRVTVTVQVQVTVTVQVQVT5GVQVQ5GVQVQVQVNX(VN5G5G5HX(X(5HW3X'X'W35H5I5JW%W%WUWUW%W%WU5IW%W%5IW%WUW%WUWUW%W%WUWUWU5GWUWU5G5HWUWUU>U>U>5H5H5IU>U>TUTU5I5JTUTU5J5KTL5KTL5LTUTU5L5MTUTU5M5NTUTU5N5OTU5OTU5PTUTU5PV;TUV;V;V;TUTUTU5OTUTU5O5PTUTU5P5QTU5QTU5RTUTU5RUPTLU55RU5TLU5U5U5TLU4TLU4TL5PTLTLU0UP5PUP5PUPU0UPU9UPU95P5PUPU9U95PUP5QUPTUTUTU5QTU5Q5RV;5RV;5SV;5SV;V;V;5SUPV;V;5SUPV;5TV;UPUPUPV;V;V;5SV;UP5SUPUP5SUPUP5S5TY>Y>YB5T5UY>Y>Y>Y>5U5UYBYBYBYBYBYB5UYB5UYBYB5UYIYBYBY>YB5UYBY(5UY(Y(YIYIY(Y(YI5T5U5VYIYI5VYIYB5VYBYBYIYI5V5WYIYIYBYBYIYI5V5WYIYI5WYIYIYMYIYMYMYM5VYMYIYI5V5WYIYM5WYM5WYMYIYMYMYMYM5WYM5WYMYMYMYM5W5X5X5YYMYM5Y5ZZ'6#6#YPZ'6$6$YPZ'Z'6$YJZ'6%YPYPYP6%YPYPYPY+YPY+YPY+YW6#YW6$6$YSYSYSY+Y+YSYSY/Y/6#Y/Y+6#Y+Y+6#6$Y+Y+YTYT6$Y/YTY/Y/Y/YTY/YTYTY/Y/5Z6#Y/Y/6#6$6$YTYTYT6$YTYTYTY/Y/Y/6$Y/Y/YT6$6$YTYTYT6$Y96%Y9Y*6%Y*6&Y*Y*Y*Y9Y*Y9Y*Y9YGWZYGWZX/X/Y9Y9X/X/Y9Y9X/X/Y9X/Y9Y95X5YX#X#5YX#VWVW5YVWVWVWX#X#5XVWX#X#X#5XX#X#VWVWX#X#VWVW5W5XX/X/5XVWVWVW5X5YWSWSVSVSX#VSX#X#5WWSVSVSVSVSVSWS5VWS5WWSVSWSVSVSWSWS5VW,5VWSVS5WWSWS5WWSVS5WVSVS5WWSVSVSWP5WWPWPVNVNWP5WVNVNVN5WWY5WWYWY5W5X5YWY5Y5ZWYWYVNWYWYWY5Y5ZWYWYW#W#W#5ZW#W#5Z6#6#WYWYWY6#W#WYW#VNVN6#6$W#6$W#W#VNVNW#W#6#6$WYWYVNVNWYWYWYWYWY6#WYWY6#W,W,6#W,W,WYWYW,W,WYWYW,W,WYWYW,W,WY5XWY5Y5YW,W,W,WYWYWY5YWYWY5YWYWYWYW,5YWY5Y5Z6#6#W,6$W,WYWYWY6$WYWYW,W,W#W#WY6#W#W#6#WYW,W,W,6#W,6#W,WY6#6$WYWYW,WYW,W,WYWY6#6$WYWY6$WY6$WYWYWYWYWYWY6$WYWYWY6$W,W,W,W#W,W,W#W#5Z6#W#W#W,6#W,W,6#6$6%W#W#W,W#6%W,W,6%6&WYWY6&W,6&W#W#W#6&W#6'W#6'W#WYW#WYWYW#6'W#W#6'W#W#6'W#W#6'W#W#W#WS6'WSWS6'W,WSWSW,6'W7W7W#6'W#WY6'W#WYW#W#W#6'6(WY6(WYWY6(6)WYWYWYWY6)WYWYWYWYW#WYWY6(6)W#W#6)6*WY6*WYWYW#W#6*W#W#6*WYWY6*W#WYWYW#W#6*6+W#W#WYWYWYWYWYW#WYWYW#WYWYWYW#6(WYWYWY6(WYWY6(6)WY6)6*6+6+W#W#W#6+6,W#W#6,W#W#W#6,WYW#6-6-WY6.W#W#6.W#W#WYWYW#W#6-W#W#W#6-6.W#W#W#6.W#W#6.6/W#W#VNVN6/60VNW#60W#WU60WUWM60WUWMWMWU6061WM61WMWMWM61WM62WMWUWMWUWMWU61WMWM61WMWT6262WT63WTWMWMWM63WM63WTWT63WTWTWTWM63646565WTWTWTWUX+WUX+WUWUWU6464WMWMWMWM64WMWMWMWM64WMWMWM64WTWT64WTWT64UY65UYU>65U>6666UYUYUYU>66V:V:6667V:V:6768V:V:U>68V:V:6869V:V:696:V:V:U>U>6:6;U>UY6;UY6;UY6<6=TTTTUYUYTTTT6<TTUY6<TTTT6<TTTTTTUYUYU/6<UYUY6<6=UYUYU/6=UYUY6=U/TTTT6=6>TTTT6>TT6>6?UUUU6?TTUU6@UU6@UUUUTTTLTTTLTLUPTLUPTLUPTLUPUPUPUP6=TLTLTL6=TLUPTLUPY>6<Y>6=YBYBY5Y5S:S:6<6=S:S:S:6=S:6=S:S:S0S06=S0S:S0S:S:S:S0S:S0W-W-6;6<W-W-6<W-6<W-WFWF6<6=W(W(Y9Y9Y96=Y9Y96=Y96=W-WF6>W(W(VZVZ6=W(VZVZ6=W(VZVZW(W(VZVZVZW(VZ6<W(W(6<W(VZ6<6=W(VZW(W(W(VZW66<W6W6W6W/W/W6W6W/W66:W6W6W6VZVZVZW6VZW(W6W(6869W66:W(W(6:6;VO6;VOVOW(W(VOVOW(W(VOW(69W6W.W.69W6W6W669W6W.W6696:W/W/W6VO6:VO6:VOVOVOY9Y9W(6:W(W(W(6:W(6:VUVUY9Y96:W(Y9Y96:VUVU6:VUVU6:Y9VUVUX#X#VUX#VUX#VUX#VU68VUX#68X#X#X#VUVUVU68VU68VUVU68X#X#X#68X#VUX#VU68VU69X#X#69X#X#X#696:VU6:VUVUX#X#6:X#6:6;VUVUVUVUW@6;6;X#VU6<X#X#6<X#VSVSX#X#VSVSX#X#VS6:X#6;VSVS6;VSX#6;X#X#6;VSVSVS6;6<W76=WSWS6=W7W,W,W76=6=6>W76?W,W,6?W,6?6@W7W76@W76AW76AW96B6CW76CW7W7W7W7W76CW7W9W9W9W76BW7W76B6CW76DW7W7W7W96CW7W9W96CW9W9W9W7W7W76CW9W96CW9W9W96CW9W7W9W7W9W9W<W9W9W96AW9W9W9W96A6B6BW<W9W<W96BW9W9W9W96B6C6CW<W<W<W9W9W96CW9W96CW<W96CW9W<UUTLUUUUTLTL6BTLTMUL6BULULUL6BULTLTL6BTL6BTLUEUETL6BUE6CUE6CUEUE6CTL6DTLUIULUIUITLTLUE6C6CTLUEUETLTLUEUETLTL6B6CUE6CUEUE6CTLUEUE6CTL6DUPS9WQS9WQVU6CVUVU6CX#VUVUW@WQWQWQW+WEW+W+W+W+W+6AW+6AW+W+W+WE6AWE6A6BW+W+6B6CW+W+WE6CW+W+W9W9X#6CX#6CX#X#W<W<W<6CW<6CW<W:W:W:W<W<W:W:6BW:W:6BW:W:W:W:W<W:W:W:W:W<W)W)W<W<W)W)W<W<W)W)W)6>W)6>W)6?W)W<6?W<W)6?W)W)6?W<W<W<W)W<W)W<WUWUWUX-6=X-X-X-WUWUWU6=WUWU6=6>WUWU6>W1WUWUW1W1WUWUW1WUWU6<6=WXWUWUWXWXT>T>T>6<UI6<UIUI6<UIUIUI6<6=TATAT+6=UC6>UCUC6>UCU?UCU?V1SASZ6=SZX-6=6>VXX*X*6>6?VX6?VXX*X*X*6?VX6?6@6AVXX*X*VX6AVX6AVXVX6AX*6BX*VXVXVX6BWUWUWU6BWU6BWU6CWUWUWAWUWU6BWUWU6BWUWUWU6B6CW1W1TD6CTD6DTDTITDTIS4S4S=S=S46BS4S4SXSXS@6BSXSX6BSXS@SXS@SX6ASXS@S@S@6AS@S@6ASX6BSXTDTDTD6BS.SMS.6B6B6CS.S.6CSM6DSM6DT$SMSMSMSMSM6DSMSM6DT$T$SKT$6D6DSK6ESK6ESK6FSKSKSK6FSKS3S3S36FS3S36FSJS3S36F6G6GSO6HSO6HSGSGSGSGSGSO6H6HSG6I6JSGSGSG6JSGSWSWSWW>W>W>6IW>6I6J6K6KW>6L6MW>W>6MWVW>WV6MWVWVWVWVW4WVW4W4W46KW$6LW$U#U#T-U#T-6KT-T-SJ6KSJ6LS7S7S76LS7SJSJSJS7S76KSJS7S7SJSJSOSOSO6J6JSGSGSGSO6JSOSOSOSISISISO6ISOSISOSISO6ISO6ISOSI6IS86JS86JSISISIS8SIS8S8SI6ISIS8S86IS8S>6I6JS>S>S>SWS>6JSWSW6JSWS>6JS>S>6JTP6KTPV(V(V(6KT=V(T=6KV(V(V(6K6K6LT=T=6LU@T=T=6LSO6M6NSP6NSPSP6N6OSP6PSP6PSPSPS6S66PS6SRS6S6S6S6S6S66OS66O6PSRS6S6S66P6PSRSRSRSRS6SRSR6O6PT1T1U<6PTGTGT;TG6PTGTPTP6PV.TGV.TGV.SPSP6O6PS66PS6S6SRSR6PSRSE6PSESET/6PT/T/6PT06QT0T06QT06R6RT;6S6TT06TT0T0T;T;6T6UT06UT0T;6UTGT;6VT;6VT;T;V.V.6VV.6V6W6XT0T06X6YV.T0T0T06Y6YV.6ZV.T;6ZT0T06ZT;7#T;T07#V.V.SCSESCSESESESS6Z6ZSESSSSSESESE6Z6ZSSSSSSX;6ZXDXD6ZXDXDXDT3T36Z7#T57#T5T5T5T3T5T5T56ZT57#T3T3T37#7#T5T5T5T0T0T07#T0T07#T0T07#T.T.7#T0T.7$T0T07$T0T.T0T.7$T0T0T0T.T0T07#7$7$7%UMUMUM7%UMUM7%V.7&7'7'UM7(UMT07(T0UMT0UMT07(T0UM7(UM7(UMT0UMT0T07(T07(T.T.T.7(UM7)UMV.7)UMUMV.V.7)V.UM7)UMUMUMUMT.UMSE7(SE7)XDXDXB7)7)XD7*7+7+7,XBXBXDXDXB7,XDXD7,XDXDXD7,XDXB7,XBXB7,7-T5T5T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T47(YUYUYUY7Y77(Y7Y7Y7YU7(Y7Y77(Y7YUY7YUY7X.X.X.X&7&7'X&X&X.X.X&X&7&7'X&X&7'X&X&X&X.X.7'7(X.X.X.7(Y4Y4Y@7(7(Y@7)Y@Y4Y4Y47)Y47)Y@Y@7)Y@Y@Y@Y4Y47)Y@Y4Y4Y@Y@Y@Y@Y4Y4Y@Y@7'Y@7'7(Y4Y4Y47(Y4Y47(Y4Y4Y4Y'Y,Y'Y'Y'Y'Y'7'Y'7'Y'Y,Y'Y,Y'Y,Y'Y,Y,Y,YH7%YUYU7%YUYUYUYHYHYUYHY3Y37$Y,Y,7$Y,Y,Y3YUY3Y3Y,Y,7#Z&Y,7#7$Z&7$Z&Y,7%7%YLZ$Z$YVYVYLYLYLYV7$YVYL7$YLYLYV7$YVYV7$YG7%YGYV7%YVYG7%7&YXYXYNYN7&YNYN7&7'X.YN7'YNYG7'7(YGYG7(7)YGYG7)YNYNYNX.7)X.X.YNYNX.X.YNYNYN7(7(X.X.X.YNX.7(X.YNX.X.X.X.YGYGYGYGX.YGYGYG7%YG7&YG7&YGX.YGYGYGX.YG7%X.X.YGYGX.7%X.YGX.YGX.X.WOX.X.X.X.7#X.X.7#X&X.X&X&X&WGW=W=W=WGWG6Y6ZW=W=W3W=V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>6RTLUT6S6STLTLTLV?V?V?6SV?V?6STLV?V?TLTLUGUGTL6RTL6RTLTLUGUGTLUGV;V9V;V9V96PV;V;V;V;6PV;V9V96P6QV9V9V9V;TL6P6QUG6QUGTLTLUGUGTLTLUGUGTL6PUGUGUG6P6P6QTLTLV;6QTUTUV;V;TUTUUKUK6P6QUKUK6QUKUKUKUPUKY.Y.6PY.YI6PYIYI6PY'Y.Y'Y.Y.Y.6PY.Y.6PYIY.Y.YIYIY.Y.6O6P6PYIYIYI6P6QYIYI6Q6RYIYIY.Y.6RY.YI6RYIYIY.Y.YIY.6QY.YIY.Y.Y.YIYIYI6PYIYI6P6QYIYIY.Y.6QY.YI6QYI6RYIY.YIY.Y.6QY.6RY'Y'Y.Y.Y'6QY.Y.Y'Y'Y'6QY'6QY.Y.Y.6Q6RY.6R6SY.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.6PY'Y.Y'Y'Y'6PY'6PY.Y.Y.Y'Y'6PY.Y'Y'6PY'Y.6PY.6QY'Y'6QY'Y'Y'Y'6QY'Y,Y'Y'Y,Y'Y,6PY'Y'6P6QY'Y'6QY'Y,Y,Y'6QY,Y,Y'Y,Y'6PY'Y'Y'Y'Y'Y,Y'Y'Y,6OY'6OY,Y,Y,Y,6OY,6OY,6PY,Y'Y,Y'Y'Y'6OY,Y,6OY,Y,Y,Y,Y'Y,Y,Y.Y'Y.Y.Y'Y'6MY'Y.6M6NY'Y'Y'Y'Y,Y'Y,Y'6MY'Y'6MY,Y'Y,Y'6M6MY,6NY,Y'Y'Y'6N6NY,Y,Y,Y'Y'Y'6N6NY,Y,Y,Y,Y,6NY'6N6OY,Y,Y.Y.Y.Y'Y.Y'6NY'Y.6NY.6OY.Y.6O6P6P6QY'Y'6QY'Y'Y'Y'Y'6Q6R6RY,Y'6SY,Y,6SY,Y'6SY'6TY,Y,6TY,Y'6TY'6U6UY'Y.6VY'Y'6VY'6VY'6W6X6XY'Y.Y.Y'6XY'Y,6X6YY,Y,YI6YYIYIY.Y.6YY.Y.6YYIYIY.YAY.Y.YAYA6XYAY.Y.Y.6XY.Y.YIYI6W6XYIYI6X6YYI6Z6Z7#Y.7$7$7%YIYI7%7&YIYIYAYA7&7'YAYA7'YIYAYAYA7'YAY,Y,Y,YA7&YAY,Y,Y,7&Y,YI7&YIYIY,Y,7&Y,YI7&YI7'Y,7'Y,7(YI7(YIYIYI7(YIYIYI7(YIYI7(Y,YIYI7(Y,7)7*7*7+YIYIYIYI7+7,7,7-YIYIYIZ)YIYIZ)Z)7,Z)YI7,YIZ)Z)Z)Z)7,Z)YIYIYI7+Z)7,Z)Z)Z)Z)7,Z)7,YIYI7,YIYIYIZ)Z)YIYI7+YIYIYIYIYMYIYIYMYM7*YMYIYIYM7*YIYIYMYMYMYIYMYMY,Y,Y,7(7(Y,YIYIYI7(YIY,YIYIYI7(7(Y,Y,Y,YIYI7(YIYIY,YIY,7'Y,Y,Y,Y,Z&7'Z&7'Z&Y,Z&Y,7'Y,Y,Y,7'Y,7(Y,Z&Y,Y,7'Z&7(Z&7(Z&Z&Z&Z&Z&7(Z&7(Z&Y,Y,Y,YKYKYKY,Y,Y,7'Y,Y,YK7'Y,7'Y,Z&Y,Y,Y,7'Y,Y,Y,7'7'Z&7(7)7)Z&7*Z&YIYIYI7*YIYIYIY,YIYI7)Y,YI7)7*Y,7*Y,7+Y,YI7+YIY,7+Y,Y,Y,YIY,Y,Y,7*Y,7+Y,7+Y,YIYIYIYIYI7+YI7+YIY,7+Y,YI7,7,Y,YI7-Y,Y,7-7.Y,Y,Y,7.YI7.Z)Z)Z)7.Z)7/Y,Y,7/70Y,Y,Z)Z)7/Z)Z)Z)Y,7/Z)Z)Y,7/Z)Z)7/Y,Z)Z)Y,Y,Z)Z)7.7/Z)Z)Z)Z)Y,Y,Z)Z)7.Z)Y,Y,Z)Z)Y,Y,Z)7-Y,Y,7-Z)7-Z#Z)7.Z)7.Z)7/Z)Z)7/Z#Z#Z#7/Z#7/YZYZYZ7/YZ70YZ70YMZ)Z)Z)Z)70Z)YMZ)7071Z)Z)71Z)Z)YM71YMZ)Z)Z)YMZ)Z)70YM70YMYMYMYMZ)YM70Z)YM70YMZ)Z)YMYMZ)Z)7/70Y,7071Z#Y,71Z#Z#7172Z#Z#Y,72Y,7373Z#Z#Z#7374Y,Z#74Z#Z#Z#YMY?74Y?74Y?YMYMY?74YMYM7475YM76YM76YM77Y?Y?Z'77YM7778Y?78Y?YMYMY?Y?YM78YM78YMYM78Y?YM79YMYM797:7:Y?YM7;YMYMYM7;7;Y?Y?Y?YKYKZ#Z#YKYKZ#YKYKZ&YKYKZ&Z&78Z&Z&Z&7879Z&Z&797:7:7;YKYK7;YKYKYK7;Z&7<Z&7<Z&YK7=Z&Z&YK7=YKYKYK7=YK7=Y-Y-Y-7=Y-Y-YKYKZ#Z#Z#Z#Z#7<7<Y07=Y07=7>Y0Y0Z#Z#7>Z#Z#7>7?Y0YKYKZ#YKY-Y-7>Y-Z#Y-Z#Z#7=Y-Z#Z#Y-Y-7=Y-Z#7=Z#Y-Z#Y-Z#Z#Z#Z#Z#7<Z#7<Z#Y0Y-Y-Z#Y07;Y-Y0Y-Y-Y-Y07;Y07;Y0Y07;7<Y0Y07<7=Y0Y07=Y-Y0Y07=Y0Y0Y0Y-Y-7=Y-Y-Y-7=Y-Y-Y-Y-7=Y-7=Y0Y0Z#Z#7=Z#Y?Y?7=Y?7=7>Y?Y?Z#7>Y?Y?Y?Y07>Y07>Y0Y?Y?Y?Y?Z'7>7>Y07?7@Z'Z'Z'7@Z'Z'YP7@Z'Z'YPZ'Z'Z'Z'7?7?Z'YPZ'Y-Y-Y-7?Y-Y-Y-Y07>7?Y0Y0Y07?Y0Y07?7@Y0Y0Y-Y-Y-7@Y-7@YYYYY-7@Y-7AYYYY7A7BYYYY7BYYY-Y-Y0Y07A7BY0Y0Y0Y07B7CY07CY+Y+Y0Y07CY0Y0Y0Y07CY/Y/Y+Y+Y/Y/7BY/Y07BY0Y/YEYEZ&Z&Z&7AZ&YEYE7AY<Y<YEYEY<Y<YYYYYY7@YYYY7@7A7AY<Y2Y27AY2Y/Y2Y<Y<Y2Y2Y<Y<Y2Y<Y27?Y2Y<Y<Y<Y2Y<Y2Y<Y2Y<Y2Y<7=Y<7=Y<Y2Y<7=Y<Y/7>Y/7>Y/Y/7>7?Y<Y/Y<Y<Y/Y/7>Y/Y/Y/Y<Y<Y/Y/YGYG7=7>YGYGY<Y<Y<Y<7=Y<Y<Y<Y<Z(Y<Y<Z(Z(Y<Y<Z(Z(Y<7:Y<Y<7:YGY<Y<7:YG7;YGYGYGY<Y<YGYG7:7;YGYGY<YGY<YG7:YGYGYGYG7:Z%Y)Y)Y)VT79VQVQ797:VQVQVNX(VNX(VNVN797:7:X(X(X(X'W3X'W3W3W3W379W379X'X'79X'X'X'797:WUWUW%W%WUW%797:WUWU7:X,WUWUX,X,WU7:U>TTU>7:U>U>U>TTU>79TTTTTUTUTLTLTUTUTLTLTUTUU0U07677U0U0TLU077U07778TLTL78TUU0U0TUTUU0U07778U0U0TUTUU0U0TUTU7778TUTUV;V;TU77TU7878V;79V;797:V;V;TUTUTU7:TUTU7:7;TUTU7;7<TUTU7<7=TUTU7=7>7>V;7?V;7?V;V;V;TUTUUPUP7>U57?U5U4U4TLU4U0UPU0UPU0UPU0UPUPUPU97<U97<U9U9V;7<V;7=V;7=V;7>TUTUTU7>7>V;7?V;TU7?TU7@TUV;TUV;7?V;TUV;TUV;TUV;V;7>V;7?UPUP7?7@7@UP7AUPV;V;V;UP7@UPUPUPV;UPUPUPYB7?YBY>7?YBY>Y>YBYB7?Y>YB7?Y>Y>Y>YB7?YBY>7?Y>YBYBYBYBYIYB7>YBYBYIYIYBYIY>YBYBYBYIYIY(Y(YIYIYI7;YIYIYBYBYIYB7:YI7:YIYIYIYBYIYBYIYIYIYBYBYIYIYBYBYIYIYBYIYIYI7677YIYI77YIYMYMYI77YI77YI78YIYIYFYIYMYM77YM77YMYIYMYMYMYM77YM77YMYMYMYM77YO77YMYOYMYOYO777878YMYMYM78YPZ'Z'YPYP78YP78YPZ'YPYPYPZ'YPYPYPZ'77Z'YPZ'Z'Z'YJZ'7676YJZ'YJYP76YPY+YWYWYW76YSYSYWYSYW7576YS76Y/Y+7777Y/Y+Y+Y/Y/Y+Y+Y/Y/Y+Y/YT7576Y/76Y/YTYTY/Y/YTYTY/Y/Y/7575YTYTYTY/Y/757676YTYTYTY/Y/76Y/YTY/YTYT75YTYTYTY9Y975Y9Y*Y9Y*Y*Y*Y*Y*74Y*74Y*Y*Y9Y9Y9X#Y973X#X#73X#X#X#VWVWX#73VW7374X#74VWX#VWX#74X#X#7475X#X#X/VWX/X/VWVWVW74VWVW7475VSWSVS75VSVSVS75VS75VSVS75WSWSW,WSWS75WSWSWSVSWSWSWS74757576VSVSWSWSVSWSWPVNWPWP74VNWP75VNVN75WY75WYWYWYVNVN7576VN76WYWY76WYWYWYVNVN7677VN77WYWY7778WYWYVNWYWYWYW#77W#WYWY77WYWY7778WYWYW#WYWYWYW#WYWYWYVNVNW#W#VNVN75VNW#VNW#W#VNVNVN7474WY75WYWY75W,W,75WYW,W,WYWYW,W,WYWYWY74WY74WYWYWYWYW,W,WYWY7374WYWY74W,WYWYW,W,WYWYWY73WYWY7374WYWY747575WYW,W,WY75WY76WYWYW,W,W#W#WY75W#W#75WYW,W,7576W,W,W,7676WYWYWY76WYWYWYW,76W,W,76WYW,W,WYWYW,WYWYWY75WYWYWYWY75WYWYW#W#W,W,W#W#73W#W#W#7374W,W,7475W,W,75W,W,W,W,W,W#W#W#W#W#74W#W,74W,W,W,W,W#WYWY73WYW,W,W,W#WYWYW#W#71W#W#W#7172WYWYW#727374WYWYWYW#W#WYWYWY72WYWYWYWS72WS73W,W,73WSW,W,7374W#WYW#WYWY73WYW#W#W#W#73W#W#WYW#WY72WYWY72WYWYWYWYW#WYWYWYWY7172WYWY72W#72W#W#W#W#W#WYWYW#W#71W#W#W#717272W#WYWYW#W#W#72W#W#727373W#WY747475WYWYWYWYW#WYWYWYWY74WYWYWY74WY7475W#WYWYWY757576W#W#7677W#W#77W#W#W#WYWYWY77WY7778W#78W#W#W#WYWYW#WYWYWYW#W#WYWY767777W#W#W#W#77W#W#WY7778W#WY78WY7979W#7:W#VNVNW#W#VNVNW#W#VNVNW#78W#78W#W#78VNW#W#VNW#W#W#WUWUWU77WUWU77WUWUWUWU77WUWU77WM77WMWMWMWMWM77WMWUWMWMWMWU76WMWMWMWMWT76WT76WTWTWMWMWM767677WTWTWMWMWM77WM7778WT78WTWTWTWMWMWM78WM78WTWT78WTWTWT78WTWTWTWU78WMWMWUWM7879WM79WM7:WMWMWM7:WMWM7:7;WT7;WTWTU>UYU>UYU>7:U>7;U>U>U>7;U>7;U>U>U>UYUYUYU>U>7:7;U>U>7;V:U>U>V:V:U>U>V:V:U>79V:V:U>U>79V:U>U>V:V:U>U>V:V:U>77V:V:77U>V:V:U>77UYUY77U>UYUY7778UYUYV:UYV:78V:UY78U/UYUY7879UYUYUYTTUYUYTTTT77TTTTTTUY77U/U/7778U/U/78U/U/U/U/78U/U/7879U/U/TTTTUUUUTTTTUUUUTTTT77TTUU77UUUUUU77UUUU77TTUU78TTTT78TTUUTTUUUUUPUP77UPTLUP77UP77YBY>YBY>YBY>777778S:79797:S:S:S:7:7;S;S0S07;7<7<S0S:S:W-W-7<7=W-7=7>WFW-W-7>W-WFW-WFWFY9Y9W(7=7=W(W(W(Y9Y9W(7=Y9Y97=Y9W-W-WFW-W-W-WFWFW(W(7;7<W(W(7<7=VZ7=VZW(7=W(W(W(VZVZVZW(VZVZVZW(VZW6VZW6W6W6W6W/W679W6W6W(W(79W(79W(W6W(VO79VOVOW(W(79W(VOW(VOW(W6W6W.78W.W.78W6W.W.W.W6W6W6W/W/W6W/W/W/W6W6W675W6VOW6VO7475W(W(W(VUW(VUW(74W(VU74W(W(W(Y9Y9Y974VU74VUVUY9Y9VUY9X#73X#X#7374X#X#VUVU747575X#VUVU75X#76X#X#X#VUX#VU7576X#X#X#VUX#X#X#7576X#X#X#76X#X#VUVUX#X#VU7575X#VUX#VUX#VUVU7475VUVUVUVUW@W@X#X#74X#X#X#VUX#VU73VU74VSVSX#VSX#73X#X#VSVS73VSX#X#X#7373VSVSVSW773W7W773WSW7WSW773W7W77374W7W77475W77676W,W777W,W,77W,77W,W778W,W,78W,W778W7W778W,W7W,W7W7W,W7W,W7W,W,W7W9W7W9W775W7W7W9W975W975W9W7W7W775W9W97576W7W7W9W9W7W7W9W975W975W9W7W9W7W775W975W9W9W9W7W9W7W974W9W9W9W7W9W7W773W<W<W<W9W9W97373W<W<W<73W<W9W9W9W<W9W9W9W9W972W972W<W<W9W<W<W<W9W9W971W9W9W9W<W970W9W970TLUU71TM7172UL72UL737474TLUE75UE75UEUETLTL75TL75TLUE76UETLUE76TLTL76TL76TLTLTLTLTLUE767677UE78UE78UEUE78TL79TLUE79UEUE797:UEUETLUPTL7:TL7:UPUP7:X#VUVUX#X#7:7;W+W+W+7;W+WEW+W+7:WE7;WEWEWE7;7<WEWE7<7=WEWE7=W+WEW+W+W+WE7<WEW+W9W97<W9X#7<X#W9W<7<W<7=W<W:W<W:7<W:W<W<7<WUW:7=W)W<W)7=W<W<7=W<7=W<W<W<W<W<7=W<W)7=W)7>7>W<W<W<WU7>7?7@WUWUWU7@WUWUWU7@WU7@W1W17@W1W1W1WUWUWUWXWUWXWXWX7>UIUIUIULUL7>7?UL7?7@UITHTHTATATHTHTATHT+T+UCUCUCUCUC7=UCUC7=UCSA7=SASZX-X-X-7=7=VXVXVX7=X*VXVXX*X*7=X*7=X*X*X*X*X*7=X*X*X*X*7=X*X*7=7>X*VXX*VXX*X*VXX*VX7<VXVXX*X*7<X*VX7<VX7=VXX*VXX*WUW1WUW1WUWUWU7;WU7;WU7<WU7<WUWUWAWA7<WAWU7<W1W17<W1W1W17<TI7=TI7=TITDTI7=S4S4S4SX7=S@7>7>SXS@7?S@7?S@S@S@7?S@S@SXSX7?SXS@7?S@S@TD7?TD7@S.SMS.S.S.SMS.S.SMSM7>7?SMSM7?SMS.SMS.SMSM7>SMSMSMSMSM7>7>7?T$T$T$SK7?SKT$7?T$7@T$7@T$7AT$7A7BSKT$SKSKSK7ASKT$SKS3S37A7BS3S3SJSJS3S3S37A7AS3SO7BS3SOS3SO7ASOSOSOSO7A7BSG7BSGSOSOSOSGSOSGSO7ASOSO7ASOSOSOSGSGSWSWW>W>W>WVW>W>W>7?WV7?WVWV7?WVWVWVW>W>7?W>WV7?WVWVW>W>7?7@W>W>WVWVW>WVW>WVW$W$W$W?W$W?W?W?7<U#T-U#SJSJSJ7<SJ7<SJSJS7S77<7=S77=7>SJSOSOSO7>SGSG7>SGSO7>SOSG7>SISISISISI7>SISISISOSISOS8SOS8SOS8SOS8SG7;SG7<SISISIS8S8S8S8S>SISIS>S>SISIS>S>S>78S>S>78SWS>79S>S>S>SWV$TPV$78V$TPV$TPV(V(V(7777U@T=78V(V(T=T=V(V(77T=V(7778T=U@U@78U@SPSOSP78SP78SPSP78SOSPSPSP78SPSPS>S>SPSPS>S>77S>SP77SPSPSPS6SPSPS6S6SRS6S6S6S6SRSRSR74SR7475SRSRS6S67576S676SRSRU<U<U<76U<U<76U<U<TGTGTGT;TGT;TG747576V.SD76SDSDSPSP76SPS6S6S676SRSR76SRSESDSESET/75T/7676T077T077T0T/T0T0T0T077T077T0T0T0T;T077T077T0T0T;T;77T;T0T;T0T07677T0T0T;T;77T;T077T0T;T;77T;78T;TGT;T;T;T;T;7777V.78V.78V.797:V.V.7:V.T0T0T;T0T0T079V.79V.V.V.T0T079V.T0T0T0V.78V.V.V.T;T;7879T;T;79T;T079T0T0T0T079V.SESESSSSSESESESSSESE7778SE78SESSX;X;7879X;X;797:T57:T5T5T3T37:7;7;7<T5T5T5T3T5T3T5T3T5T5T3T37:T3T57:T5T5T0T0T7T7T0T0T7T7T0T.T.T.T.T0T.T.7677T.T.T0T077T0T.77T.T.UMUMT0UMV.V.UMV.T075T0UMUMV.UMUMUMV.UM74V.V.74V.UM74UMUMV.V.UMV.T0UMT0UM72UM73UM7374UMUM74UMT075T0T0T0UMT0UMT0T073T.T.T.T0T073T073UMT0UMT0UM73UMV.V.UM7373V.UM747475UMUMSSSSSE75SESSSSSS74XBXBXBXDXD74XD7475XBXB75XD76XD76XDXBXBXDXBXBXBXDXDXB75XDXD7576XDXD76XD7677XBXB7778T5T5T.T.T5T.YUY7YUYUYUY7YUYUY7Y7YUYUY7Y7YUY7X.X.X&X&X.X.X&X&X&X.X&X&X.X.X&X&X.X&X&X&X.X.X&X&X.X.X&X&X.X.X.X&Y4Y4Y@Y@Y4Y@Y4Y@Y4Y@Y@Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y@Y@Y@Y4Y@Y@Y@Y4Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y4Y4Y@Y4Y4Y@Y@Y4Y4Y'Y,Y'Y,Y'Y,Y'Y,YHYHYUYUYHYHYUYUY3Y3Y,Y,Y,Y3Y,Y,Y,Y,Y,Z&Z&Z&Y,Z&Y,Y,Y,Z&Z&Z&Y,Z&Z&Z&Y,Z&YLYLZ$Z$YLYVYLYVYVYVYLYLYVYGYVYVYGYGYVYGYVYVYVYGYVYVYVYGYNYNYXYXYNYNYXYNYXYXYXYNYNYNX.X.YNYNYNX.YNYGYNYNYGYNYGYGYNYNYGYGYGYNYGYGYNYNYGYGYNYNYNYGYNYNX.X.YNX.X.X.YNYNX.X.YNX.YNX.YGYGYGX.YGX.YGX.YGYGYGX.YGYGX.X.X.YGX.YGX.X.X.X&X.X&X&X&WGWGW=W=WGWGW=W=UTTLUTUTUTTLUTUTUTTLUTTLV?V?V?TLV?V?TLTLUGUGTLUGTLUGTLTLV9V;V9V;V9V9V9V;V9V9V;V;V9V9V;V;TLUGUGUGTLUGUGUGUGUGTLUGUGUGTLUGUGUGUGTUUGUGTLTLUGTUTLTLV;V;TUV;UKUKUKUPUKUKUPUPUKUKUPUPY.Y.YIY.Y.Y.YIY.Y.Y'Y.Y.Y.Y.YIYIY.YIYIYIY.Y.YIYIY.Y.YIYIY.YIYIYIY.Y.YIY.Y.Y.Y.YIY.Y.YIYIY.Y.YIY.Y.Y.YIY.Y.Y.YIY.YIYIYIY.Y.Y.YIYIY.Y.YIYIY.Y.YIY.Y.Y.YIYIY.Y.YIY.YIY.YIY.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y'Y'Y'Y,Y,Y,Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y,Y,Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y'Y'Y,Y,Y,Y'Y'Y'Y,Y'Y'Y'Y,Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y.Y.Y.Y'Y'Y'Y.Y'Y.Y.Y'Y,Y'Y'Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y,Y'Y'Y'Y'Y'Y,Y,Y'Y,Y,Y,Y.Y.Y.Y'Y.Y'Y.Y.Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y'Y'Y.Y'Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y'Y'Y'Y,Y'Y,Y,Y,Y,Y'Y'Y,Y,Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y,Y'Y,Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y'Y.Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y.Y.YIYIYIY.YIYIY.Y.YIYIY.Y.Y.YAY.YAY.Y.Y.Y.Y.YIY.Y.YIYIY.Y.YIYAY.YAYAYAYIYAYIYAYAYAY.Y.YAYAY.YAY.YAY.YAYAYAYIYIYAYAYIYIYAYAYIYIYAYAYIYAYAYAYAYIYAYAYIYAYAYAYIYIYAY,YAY,YAY,YAY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,YIY,Y,Y,YIYIY,YIY,Y,Y,Y,Y,YIY,YIYIYIY,YIYIYIY,Y,YIYIY,Y,YIYIY,Y,YIY,YIY,YIYIY,YIYIYIYIY,YIYIY,Y,YIY,YIYIYIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIYIZ)Z)Z)YIZ)YIZ)Z)Z)Z)YIYIZ)YIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIZ)YIYIYIZ)Z)YIYIYIYMYIYMYMYIYMYMY,Y,YIY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,Y,Y,YIYIY,Y,Y,Y,YIY,Y,Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Y,Y,Z&Y,Z&Z&Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Z&YKY,YKYKY,Z&Z&Z&Y,Z&Z&Z&Y,Y,Y,Z&Y,Y,Y,Z&Z&Z&YKYKZ&Z&YKYKY,Y,Y,Z&Y,Z&Z&Z&YIYIYIY,YIY,Y,Y,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,Y,Y,YIY,YIY,YIY,Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Y,Y,Z)Y,YIYIZ)Z)Z)Z)Y,Y,Z)Y,Z)Z)Y,Y,Z)Z)Y,Z)Z)Z)Y,Z)Z)Z)Y,Y,Y,Z)Y,Y,Y,Z)Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Z)Z)Y1Y1Y,Y,Z)Z)Y,Y,Z)Z)Z)Z#Z)Z#Z#Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z#Z#YZZ#YZZ#Z)YZYZYZYZYZZ)YZZ)YZZ)Z)Z)Z)YMZ)YMZ)YMYMYMZ)YMYMZ)Z)YMYMZ)Z)YMYMZ)YMZ)YMZ)Z)Z)YMZ)YMYMYMYMZ)YMYMZ)Z)Z)YMZ)Z)YMYMZ)YMYMYMY,Y,Y,Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Y,Y,Y,Z#Z#Z#Y,Z#Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Z#Z#YMY?Y?Y?YMY?YMYMY?Y?Y?YMY?Y?YMYMY?Y?YMY?YMY?YMY?YMYMYMY?YMY?YMYMZ'Y?Z'Z'YMY?Y?Y?YMY?Y?Y?Y?Y?YMYMYMY?YMYMYMY?YMYMY?Y?YMYMYMY?YMYMYMYMY?Y?YMYMY?YMY?Y?YMY?Y?Y?YMYMYMY?Y?Y?YMYMYMY?Z&Z&YKZ&Z&Z&YKYKZ&Z&YKYKZ&Z&YKYKZ&Z&YKZ&YKZ&YKYKZ&Z&YKYKZ&Z&YKYKYKYKYKZ&Z&Z&YKZ&YKZ&YKYKZ&Z&YKZ&Z&Z&YKYKYKYKY-YKYKYKYKY-Y-YKY-Y-Z#Z#Y0Y0Z#Z#Z#Y0Z#Y0Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Y0Z#Y0Z#Y0Y0Y0Z#Y-Z#Y-Z#Y-Z#Z#Z#Y-Z#Z#Z#Y-Y-Y-Z#Z#Z#Y0Z#Z#Z#Y0Y0Y-Y0Y0Y0Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y-Y-Y0Y-Y-Y-Y-Y0Y-Y-Y0Y0Y-Y0Y0Y0Z#Z#Z#Y?Y?Y?Z#Z#Z#Z#Y?Y?Z#Z#Y?Y?Z#Y?Z#Y?Y?Y0Y0Y0Y0Y0Y?Y0Y?Z'Z'Z'Y0Z'Z'Z'Z'Y0Y0Y0Y0Y0Z'Y0Z'Z'Z'YPYPZ'YPYPYPYPYPZ'Z'Z'YPYPY-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y-Y-Y-YYY-Y-YYYYY-YYY-YYY-YYY-Y-YYYYY0Y0YYY0Y0Y0Y0YYY0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y0Y0Y0Y+Y0Y0Y+Y+Y0Y+Y+Y+Y0Y0Y+Y+Y0Y0Y0Y/Y+Y/Y+Y+Y0Y0Y0Y/YEYEZ&YEYEYEY<Y<YYYYY/Y/YYYYY/Y/YYY/Y/Y/Y<Y<Y2Y2Y2Y2Y/Y2Y2Y<Y2Y2Y2Y<Y<Y<Y2Y<Y2Y<Y<Y<Y/Y/Y/Y<Y/Y<Y/Y<Y/Y/Y<Y<Y<Y/Y<Y<Y/Y/Y<Y/Y/Y/Y<YGY<Y<YGYGY<YGY<Y<Z(Z(YGYGY<Y<YGYGY<YGY<YGY<YGY<Y<Y<YGYGYGY<YGYGYGY<Y<YGYGY<YGYGYGZ%Z%VTVTVTVQVTVTVQVQVTVQVQVQVNVNX(X(VNX(X(X(VNVNVNX(W3W3W3X'W3W3X'X'W3W3X'X'W%W%WUWUW%W%WUW%WUX,WUWUX,X,WUWUX,X,WUWUWUX,WUX,U>TTU>TTU>TTTTTTTUTUU0U0TUTUU0U0TLU0TLU0TLU0TLTLU0U0TLTLTUTUU0U0TUTUU0U0TUTUU0U0TUTUTUV;TUTUV;V;TUTUTUV;TUV;V;V;TUV;TUV;TUV;TUV;TUTUTUV;TUTUV;V;TUTUTUUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUV;TUV;TUV;TUV;TUTUTUV;TLTLTLU5TLU5U5U5UPUPU9U9UPUPU9U9V;UPV;UPV;UPV;UPV;UPV;V;V;V;V;UPTUV;V;V;TUV;TUV;TUTUTUV;TUTUTUV;TUV;V;V;TUTUTUV;V;UPV;UPUPUPV;V;UPUPV;V;UPUPV;UPV;UPV;UPV;UPV;UPV;V;UPUPYBYBYBY>YBYBY>Y>YBYBYBY>YBYBYBY>Y>YBYBYBY>YBYBYBYIYIYBYBYIYIYIYBYBYIYBYIYIYIYBYIYIYIYBYBYIYIYBYBYIYIYBYBYMYMYIYMYIYIYIYFYFYFYIYFYMYMYIYMYIYMYIYMYMYMYMYOYMYOYMYOYMYMYOYOYMYMYOYOYOYOYMYMYOYOYMYMYOYOYOYMYPYPZ'Z'YPYPZ'YPZ'YPZ'Z'YPYPZ'YPZ'YJZ'YJYJYJZ'YJYPY+Y+Y+YWYWYSYSYWYSYWYSYWYSYSYSY/Y/Y+Y/Y/Y/Y+Y/Y+Y/Y+Y+YTYTY/Y/YTYTYTY/Y/Y/YTYTY/YTYTYTY/Y/YTYTY/Y/Y/YTY/YTYTYTY/YTYTYTY/Y/Y/YTY/YTYTYTY9Y9Y*Y9Y*Y9Y*Y*Y*Y*Y*Y9Y9Y9X#X#Y9X#X#X#VWVWX#VWVWVWVWX#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#WSWSVSVSVSWSVSWSVSWSVSWSWSWSWSW,WSWSVSVSVSWSVSVSWSWSVSWSVSWSVSVSWSWSVSWSVNVNWPVNVNVNWPWPVNVNVNWYVNWYWYWYVNVNVNWYVNWYWYWYVNVNVNWYVNWYVNVNWYVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYW#WYWYWYWYW#WYWYW#W#WYWYW#WYWYWYVNVNW#VNVNVNWYWYVNWYVNWYVNWYWYWYWYWYW,W,WYWYW,WYWYWYWYW,W,W,WYW,WYWYW,W,WYWYW,W,WYW,W,W,WYW,WYWYWYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,W,W,WYW,W,W,WYW,W#W#WYWYW#WYWYWYW,W,W,WYW,WYWYWYW,WYWYWYW,W,W,WYW,WYWYWYWYWYW,W,WYWYW,W,WYWYW,WYWYWYW#W#W,W,W#W#W,WYW,W,WYWYW,W,WYWYW,W,WYW,W,W,W,WYW,W,W#W#W#W,W#W,W,W,WYWYWYW,W#WYW#WYW#W#WYWYW#W#WYW#W#WYW#WYW#WYW#W#WYWYW#WYWYW#WYWYWSWSWSW,W,W,WSWSW,W,WSWSW,W,W7W7W,W,W7W7WYW#WYW#W#W#WYWYWYW#WYWYW#WYWYWYWYW#W#W#W#WYW#WYWYWYWYW#WYWYW#W#WYW#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYW#W#W#WYW#WYWYWYWYWYWYW#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYWYW#WYWYW#W#WYWYW#WYW#W#WYW#WYW#W#W#WYWYWYW#WYWYW#W#WYW#W#W#WYWYW#W#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYW#W#W#WYW#W#W#W#W#WYWYWYWYW#W#W#W#WYWYWYWYW#W#W#VNW#W#VNVNW#W#VNVNW#VNWUWUWMWMWMWMWMWUWUWUWUWMWUWUWUWMWUWUWUWMWUWMWUWUWUWUWMWMWMWMWTWTWMWMWTWTWMWTWMWTWMWMWMWTWMWTWTWTWMWMWTWMWMWMWTWTWMWTWTWTWMWMWTWTWMWTWTWTWMWMWMWTWMWMWTWTWMWTWTWTWUWUWMWMWUWMWMWMWMWUWMWMWMWTWMWMWMWTWMWTWMWMWTWMWMWMWMWTWMWMWTWTWMWTWTWTUYUYU>UYU>UYU>UYU>UYUYUYU>UYU>U>U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>U>V:U>U>V:V:U>U>UYUYU>U>UYUYU>U>UYUYU>UYUYUYV:UYV:UYV:V:U/U/U/UYU/U/UYUYU/U/UYUYUYTTUYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/TTTTUUTTTTUUUUUUUUTTUUUUTTTTUUTTTTTTUUTTUUTTUUUUUPUPTLUPTLTLUPUPY>YBY>YBY>YBY>YBS:S;S:S;S:S:S;S;S;S;S:S:S:S:S;S:S:S:S;S:S:S:S;S:S:S;S:S:S:S0S:S:S0S0S:S0S0S0S:S0W-W-WFWFW-WFWFWFW-W-W-WFWFW-WFWFWFW-WFW-Y9Y9W(W(Y9Y9Y9W(W(Y9W(W(W(Y9W(W(W(W(VZVZW(W(VZW(W(W(W(VZW(W(VZW(VZVZW(VZVZW(VZW(W6W(W6W6W6W(W6W(W6W(W6W6VOW(VOW(W(W(VOW(W6W6W.W6W.W.W.W6W6W6W6VOY9Y9W(Y9Y9Y9W(W(W(W(W(VUY9Y9W(W(Y9VUY9VUY9Y9VUY9X#VUX#X#VUVUX#X#VUVUX#X#VUVUVUX#VUX#X#X#X#X#VUX#VUVUVUX#X#X#VUX#VUVUVUX#VUVUX#X#VUX#VUVUX#X#VUX#X#VUVUVUVUX#VUVUVUX#VUX#X#X#X#VUX#X#VUVUVUX#VUVUVUX#VUX#VUX#VUX#X#VSX#X#VSVSX#VSX#X#X#VSX#VSVSVSW7WSW7W7WSWSW7WSWSWSW7WSWSWSWSW7WSWSW7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W9W7W7W7W9W7W9W7W9W7W7W7W9W9W9W9W9W7W7W9W9W7W9W9W9W7W9W7W9W7W9W7W7W7W9W7W7W7W9W7W9W9W9W9W9W9W<W9W9W<W<W9W9W9W<W9W<W9W<W9W<W<W<W9W9W9W<W9W9W9W<W9W<W9W<TLTLUUTLTLTLUUTLTMULTMULTMTMTMULULULTMULTMULTMTMULULTMULUETLUEUEUETLUETLTLTLUETLTLTLUETLUETLUEUEUETLTLTLTLTLUEUETLTLUETLUETLTLTLUETLUETLTLTLUEUETLTLUETLUETLUEUETLTLUETLTLTLUETLUETLUEUEUETLUEUETLTLUEUETLTLUETLTLUPTLUPTLUPUPUPX#X#VUVUX#X#VUVUX#X#VUX#W+W+W+WEW+W+W+WEW+WEWEWEW+WEW+W+WEWEW+WEWEWEW+W+WEWEW+W+WEW+WEW+W+W+WEW+X#W9X#X#X#W9W9W9W<W<W<W:W<W:W:W:W<W:W<W:WUWUW:W:W:WUW:W:W)W<W)W)W)W<W)W<W)W)W)W<W<W<W)W)W)W)W)W<W)W<W)W<W)W)W<W)WUX-X-X-WUWUX-X-WUX-X-X-WUWUW1WUWUW1W1W1WUWUWUW1WUW1W1W1T>UIUIUIUIULUIUIULULUIULULULUIUIULUIULUIUCUCU?U?UCUCU?U?SASZSASZX-X-X-VXX-VXX-VXX*X*VXVXVXX*VXX*VXX*VXX*X*X*X*VXX*X*X*VXX*X*VXVXX*VXVXVXVXX*VXVXVXX*VXVXX*X*VXX*VXX*VXX*WUWUWUWAWUWAWAWAWUWAWUWAWUWUWUWAWAWAWUWAWUWUWUW1WUW1W1W1TDTITITITITITDTITDTITDTDS4S=S4S4SXSXSXS@SXSXS@S@SXSXS@S@SXSXS@SXSXSXS@SXSXSXS@S@S@SXS@S@S@SXS@SXTDTITDTITDTITDTISMSMS.S.SMSMS.S.SMSMS.S.SMT$SMSMSMT$SMSMSMSMSMT$SMSMT$T$T$T$T$SKT$T$T$SKT$SKT$SKT$SKT$SKT$SKT$T$T$SKSKSKT$SKT$SKT$SKT$SKS3SJSJSJSJS3SJSJS3SOS3SOS3S3SOSOSOS3SOSOS3SOS3SOSOSGSGSGSOSOSOSGSOSGSOSOSOSGSOSOSGSGSOSOW>W>WVWVW>W>WVWVW>WVWVWVW>W>WVW>WVW>WVWVWVW>WVWVW>WVWVWVT-U#T-U#SJS7SJS7SJS7SJSJS7S7S7SJS7S7SJSJS7S7S7SJS7S7SJSJSOSGSOSGSOSGSGSGSOSGSOSGSOSOSOSISISISOSISGSGSGSISGSISGSIS>SWS>S>SWSWS>SWSWSWS>S>V$TPTPTPV(V(V(T=T=V(T=T=T=U@T=T=V(V(T=T=V(T=T=T=V(V(T=T=U@U@T=T=SOSOSPSOSPSOSPSPSOSOSOSPSOSPSPSPS>S>SPS>SPS>SPSPS6S6S6SRSRS6SRSRS6S6S6SRS6S6S6SRS6S6SRSRS6S6SRSRU<U<U<T1U<U<T1U<TPTPTPV.TPTPV.V.TPV.V.V.SPSPSDSPSDSPSDSPS6SRS6S6SDSRSDSRT/T/T0T0T/T0T/T/T/T/T0T0T0T0T/T0T/T0T/T0T0T0T;T;T0T;T0T0T;T;T0T;T0T;T0T0T0T;T0T;T0T;T0T0T;T;T0T;T;T;T0T;T;T;T0T;TGTGT;TGT;TGT;T;T;V.T;T;V.V.T;V.T;V.T;V.T;V.T;V.T;V.T;T0V.V.T0T0V.V.T0V.T0T0V.V.T0V.V.V.T0T0T0V.T0V.V.V.T;T;T0T0T;T;T0T0T;T;T0T;T;T;T0T;T0V.V.V.SESESESSSESSSSSSSESSSESSX;XDXDXDXDX;XDXDX;X;XDXDX;XDXDXDT3T3T5T3T5T3T5T5T3T3T5T3T3T3T5T3T3T3T5T5T3T3T5T5T3T3T5T5T.T0T.T.T0T0T.T0T.T0T.T.T.T0T.T.UMUMT0UMUMV.UMUMV.UMUMUMV.V.UMV.T0UMT0UMT0T0T0UMT0T0T0UMT0UMUMUMT0UMT0T0T0UMT0T0T0T0T.T.T.T0T.T.T0UMT0UMT0UMUMUMUMV.UMV.V.V.UMUMUMV.UMUMUMV.UMUMV.V.UMUMSESSSSSSXDXDXBXBXDXDXBXDXBXDXBXDXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXDXBXDXBXBXDXDXBXBXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXBT5T.T5T5T.T.T5T5", c = ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vincennes", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Etc/GMT", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/UTC", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"];
1144
- if (O = +O, !(-90 <= (z = +z) && z <= 90 && -180 <= O && O <= 180))
1144
+ if (p = +p, !(-90 <= (z = +z) && z <= 90 && -180 <= p && p <= 180))
1145
1145
  throw new RangeError("invalid coordinates");
1146
1146
  if (90 <= z)
1147
1147
  return "Etc/GMT";
1148
- var p = -1, A = 48 * (180 + O) / 360.00000000000006, W = 24 * (90 - z) / 180.00000000000003, o = 0 | A, Y = 0 | W, d = 96 * Y + 2 * o;
1148
+ var O = -1, A = 48 * (180 + p) / 360.00000000000006, W = 24 * (90 - z) / 180.00000000000003, o = 0 | A, Y = 0 | W, d = 96 * Y + 2 * o;
1149
1149
  for (d = 56 * b.charCodeAt(d) + b.charCodeAt(d + 1) - 1995; d + c.length < 3136; )
1150
- d = 56 * b.charCodeAt(d = 8 * (p = p + d + 1) + 4 * (Y = 0 | (W = 2 * (W - Y) % 2)) + 2 * (o = 0 | (A = 2 * (A - o) % 2)) + 2304) + b.charCodeAt(d + 1) - 1995;
1150
+ d = 56 * b.charCodeAt(d = 8 * (O = O + d + 1) + 4 * (Y = 0 | (W = 2 * (W - Y) % 2)) + 2 * (o = 0 | (A = 2 * (A - o) % 2)) + 2304) + b.charCodeAt(d + 1) - 1995;
1151
1151
  return c[d + c.length - 3136];
1152
1152
  }
1153
1153
  m.exports = M;
@@ -1162,7 +1162,7 @@ class a {
1162
1162
  */
1163
1163
  static guessTimeZoneOffset(M, z) {
1164
1164
  M = a.convertToStdLng(M);
1165
- const O = S0(z, M), b = B().tz(O).utcOffset();
1165
+ const p = S0(z, M), b = B().tz(p).utcOffset();
1166
1166
  return a.roundPrecision(b / 60, 1);
1167
1167
  }
1168
1168
  /**
@@ -1171,26 +1171,26 @@ class a {
1171
1171
  * @return timezone => +08:30
1172
1172
  */
1173
1173
  static prettyTimeZoneOffset(M) {
1174
- let z = Math.floor(Math.abs(M)), O = Math.round((Math.abs(M) - z) * 60);
1175
- return O = O > 9 ? O : `0${O}`, z = z > 9 ? z : `0${z}`, M > 0 ? `+${z}:${O}` : `-${z}:${O}`;
1174
+ let z = Math.floor(Math.abs(M)), p = Math.round((Math.abs(M) - z) * 60);
1175
+ return p = p > 9 ? p : `0${p}`, z = z > 9 ? z : `0${z}`, M > 0 ? `+${z}:${p}` : `-${z}:${p}`;
1176
1176
  }
1177
1177
  /**
1178
1178
  * @param lng
1179
1179
  * @param precision 3位小数在百米级,4位小数在十米级, 5位小数在米级
1180
1180
  * @param format
1181
1181
  */
1182
- static lng2pretty(M, z = 6, O = "H°M′") {
1182
+ static lng2pretty(M, z = 6, p = "H°M′") {
1183
1183
  M = a.convertToStdLng(M, z);
1184
1184
  let b = "E";
1185
- M < 0 && (b = "W"), M = Math.abs(M), O = O.toUpperCase();
1186
- let c = M * 3600, p, A, W, o, Y, d;
1187
- p = c % 3600 % 60, O.indexOf("S") !== -1 && (c = c - p, A = a.padNumber(p, 2, 2)), W = c / 60 % 60, O.indexOf("M") !== -1 && (O.indexOf("S") !== -1 ? o = a.roundPrecision(W, z).toString().padStart(2, "0") : o = a.padNumber(W, 2, 3), c = c - W * 60), Y = c / 3600, O.indexOf("M") !== -1 ? d = a.roundPrecision(Y, z).toString().padStart(3, "0") : d = a.padNumber(Y, 3, 6), Number(A) >= 60 && (o = Number(o) + 1, A = 0), Number(o) >= 60 && (d = Number(d) + 1, o = 0);
1188
- const R = `${O.replace(/S+/gi, A).replace(/M+/gi, o).replace(/H+/gi, d)}${b}`;
1185
+ M < 0 && (b = "W"), M = Math.abs(M), p = p.toUpperCase();
1186
+ let c = M * 3600, O, A, W, o, Y, d;
1187
+ O = c % 3600 % 60, p.indexOf("S") !== -1 && (c = c - O, A = a.padNumber(O, 2, 2)), W = c / 60 % 60, p.indexOf("M") !== -1 && (p.indexOf("S") !== -1 ? o = a.roundPrecision(W, z).toString().padStart(2, "0") : o = a.padNumber(W, 2, 3), c = c - W * 60), Y = c / 3600, p.indexOf("M") !== -1 ? d = a.roundPrecision(Y, z).toString().padStart(3, "0") : d = a.padNumber(Y, 3, 6), Number(A) >= 60 && (o = Number(o) + 1, A = 0), Number(o) >= 60 && (d = Number(d) + 1, o = 0);
1188
+ const R = `${p.replace(/S+/gi, A).replace(/M+/gi, o).replace(/H+/gi, d)}${b}`;
1189
1189
  return {
1190
1190
  direction: b,
1191
1191
  degree: a.roundPrecision(Y, z),
1192
1192
  minute: a.roundPrecision(W, z),
1193
- second: a.roundPrecision(p, z),
1193
+ second: a.roundPrecision(O, z),
1194
1194
  pretty: R,
1195
1195
  S: A,
1196
1196
  M: o,
@@ -1203,18 +1203,18 @@ class a {
1203
1203
  * @param precision 精确度
1204
1204
  * @param format 格式化
1205
1205
  */
1206
- static lat2pretty(M, z = 6, O = "H°M′") {
1206
+ static lat2pretty(M, z = 6, p = "H°M′") {
1207
1207
  M = M % 180;
1208
1208
  let b = "N";
1209
- M < 0 && (b = "S"), M = Math.abs(M), O = O.toUpperCase();
1210
- let c = M * 3600, p, A, W, o, Y, d;
1211
- p = c % 3600 % 60, O.indexOf("S") !== -1 && (c = c - p, A = a.padNumber(p, 2, 2)), W = c / 60 % 60, O.indexOf("M") !== -1 && (O.indexOf("S") !== -1 ? o = a.roundPrecision(W, z).toString().padStart(2, "0") : o = a.padNumber(W, 2, 3), c = c - W * 60), Y = c / 3600, O.indexOf("M") !== -1 ? d = a.roundPrecision(Y, z).toString().padStart(2, "0") : d = a.padNumber(Y, 2, 6), Number(A) >= 60 && (o = Number(o) + 1, A = 0), Number(o) >= 60 && (d = Number(d) + 1, o = 0);
1212
- const R = `${O.replace(/S+/gi, A).replace(/M+/gi, o).replace(/H+/gi, d)}${b}`;
1209
+ M < 0 && (b = "S"), M = Math.abs(M), p = p.toUpperCase();
1210
+ let c = M * 3600, O, A, W, o, Y, d;
1211
+ O = c % 3600 % 60, p.indexOf("S") !== -1 && (c = c - O, A = a.padNumber(O, 2, 2)), W = c / 60 % 60, p.indexOf("M") !== -1 && (p.indexOf("S") !== -1 ? o = a.roundPrecision(W, z).toString().padStart(2, "0") : o = a.padNumber(W, 2, 3), c = c - W * 60), Y = c / 3600, p.indexOf("M") !== -1 ? d = a.roundPrecision(Y, z).toString().padStart(2, "0") : d = a.padNumber(Y, 2, 6), Number(A) >= 60 && (o = Number(o) + 1, A = 0), Number(o) >= 60 && (d = Number(d) + 1, o = 0);
1212
+ const R = `${p.replace(/S+/gi, A).replace(/M+/gi, o).replace(/H+/gi, d)}${b}`;
1213
1213
  return {
1214
1214
  direction: b,
1215
1215
  degree: a.roundPrecision(Y, z),
1216
1216
  minute: a.roundPrecision(W, z),
1217
- second: a.roundPrecision(p, z),
1217
+ second: a.roundPrecision(O, z),
1218
1218
  pretty: R,
1219
1219
  S: A,
1220
1220
  M: o,
@@ -1222,43 +1222,43 @@ class a {
1222
1222
  };
1223
1223
  }
1224
1224
  static str2Lng(M, z = 6) {
1225
- let O;
1225
+ let p;
1226
1226
  if (isNaN(M)) {
1227
1227
  M = a.strReplace(M, "LNG");
1228
1228
  const b = M[M.length - 1].toUpperCase();
1229
1229
  M = M.substring(0, M.length - 1).trim();
1230
1230
  const c = M.split(" ").filter((o) => o !== "").map((o) => Math.abs(Number(o)));
1231
- let [p, A, W] = c;
1232
- if (A = A || 0, A = A > 60 ? A / Math.pow(10, String(A).length - 2) : A, W = W || 0, W = W > 60 ? W / Math.pow(10, String(W).length - 2) : W, p > 360 && !A) {
1233
- const o = this.roundPrecision(p / 100, 0);
1234
- A = p - o * 100, p = o;
1231
+ let [O, A, W] = c;
1232
+ if (A = A || 0, A = A > 60 ? A / Math.pow(10, String(A).length - 2) : A, W = W || 0, W = W > 60 ? W / Math.pow(10, String(W).length - 2) : W, O > 360 && !A) {
1233
+ const o = this.roundPrecision(O / 100, 0);
1234
+ A = O - o * 100, O = o;
1235
1235
  }
1236
- O = p + A / 60 + W / 3600, b === "W" && (O = O * -1);
1236
+ p = O + A / 60 + W / 3600, b === "W" && (p = p * -1);
1237
1237
  } else
1238
- O = Number(M);
1239
- return a.convertToStdLng(O, z);
1238
+ p = Number(M);
1239
+ return a.convertToStdLng(p, z);
1240
1240
  }
1241
1241
  static str2Lat(M, z = 6) {
1242
- let O;
1242
+ let p;
1243
1243
  if (isNaN(M)) {
1244
1244
  M = a.strReplace(M, "LAT");
1245
1245
  const b = M[M.length - 1].toUpperCase();
1246
1246
  M = M.substring(0, M.length - 1).trim();
1247
1247
  const c = M.split(" ").filter((o) => o !== "").map((o) => Math.abs(Number(o)));
1248
- let [p, A, W] = c;
1249
- if (W = W || 0, A = A || 0, A = A > 60 ? A / Math.pow(10, String(A).length - 2) : A, W = W > 60 ? W / Math.pow(10, String(W).length - 2) : W, p > 90 && !A) {
1250
- const o = this.roundPrecision(p / 100, 0);
1251
- A = p - o * 100, p = o;
1248
+ let [O, A, W] = c;
1249
+ if (W = W || 0, A = A || 0, A = A > 60 ? A / Math.pow(10, String(A).length - 2) : A, W = W > 60 ? W / Math.pow(10, String(W).length - 2) : W, O > 90 && !A) {
1250
+ const o = this.roundPrecision(O / 100, 0);
1251
+ A = O - o * 100, O = o;
1252
1252
  }
1253
- if (O = p + A / 60 + W / 3600, O > 90)
1253
+ if (p = O + A / 60 + W / 3600, p > 90)
1254
1254
  throw new Error(`latitude out of range: ${M}${b}`);
1255
- b === "S" && (O = O * -1);
1255
+ b === "S" && (p = p * -1);
1256
1256
  } else
1257
- O = Number(M);
1258
- return a.roundPrecision(O, z);
1257
+ p = Number(M);
1258
+ return a.roundPrecision(p, z);
1259
1259
  }
1260
- static str2LngOrLat(M, z = 6, O = "LAT") {
1261
- M = a.strReplace(M, O);
1260
+ static str2LngOrLat(M, z = 6, p = "LAT") {
1261
+ M = a.strReplace(M, p);
1262
1262
  const b = M[M.length - 1].toUpperCase();
1263
1263
  return ["N", "S"].includes(b) ? {
1264
1264
  lat: a.str2Lat(M, z)
@@ -1270,8 +1270,8 @@ class a {
1270
1270
  return M > 180 ? (M = M % 360, M = M > 180 ? M - 360 : M) : M < -180 && (M = M % 360, M = M < -180 ? M + 360 : M), a.roundPrecision(M, z);
1271
1271
  }
1272
1272
  static roundPrecision(M, z = 6) {
1273
- const O = Number("1".padEnd(z + 1, "0"));
1274
- return Math.round(M * O) / O;
1273
+ const p = Number("1".padEnd(z + 1, "0"));
1274
+ return Math.round(M * p) / p;
1275
1275
  }
1276
1276
  /**
1277
1277
  * 转换为按经度单调增/减的坐标数组
@@ -1293,8 +1293,8 @@ class a {
1293
1293
  }
1294
1294
  static strReplace(M, z = "LAT") {
1295
1295
  M = M.replace(/([0-9]+)\.([0-9]+\.[0-9]+)/g, "$1 $2").replace(/([0-9]+)-([0-9]+\.[0-9]+)/g, "$1 $2").replace(/°/, " ").replace(/(\d+)-(\d?)/g, "$1 $2").replace(/'/g, " ").replace(/′/g, " ").replace(/"/g, " ").replace(/∼/g, " ").replace(/°/g, " ").replace(/,/g, ".").replace(/^ /g, "").replace(/ $/g, "").trim();
1296
- const O = M[M.length - 1].toUpperCase();
1297
- if (!["N", "S", "E", "W"].includes(O)) {
1296
+ const p = M[M.length - 1].toUpperCase();
1297
+ if (!["N", "S", "E", "W"].includes(p)) {
1298
1298
  const b = M, c = Number(b.split(" ")[0]);
1299
1299
  if (isNaN(c))
1300
1300
  throw new Error(`invalid Lat/Lng: ${M}`);
@@ -1309,9 +1309,9 @@ class a {
1309
1309
  * @param intPrecision 整数位数
1310
1310
  * @param dcmPrecision 小数位数
1311
1311
  */
1312
- static padNumber(M, z = 2, O = 2) {
1313
- const b = a.roundPrecision(M - Math.trunc(M), O), c = b >= 1 ? Math.trunc(M + 1).toString().padStart(z, "0") : Math.trunc(M).toString().padStart(z, "0");
1314
- return b >= 1 ? c : O > 0 ? `${c}.${Math.trunc(b * Math.pow(10, O)).toString().padStart(O, "0")}` : c;
1312
+ static padNumber(M, z = 2, p = 2) {
1313
+ const b = a.roundPrecision(M - Math.trunc(M), p), c = b >= 1 ? Math.trunc(M + 1).toString().padStart(z, "0") : Math.trunc(M).toString().padStart(z, "0");
1314
+ return b >= 1 ? c : p > 0 ? `${c}.${Math.trunc(b * Math.pow(10, p)).toString().padStart(p, "0")}` : c;
1315
1315
  }
1316
1316
  }
1317
1317
  class t0 {
@@ -1320,13 +1320,13 @@ class t0 {
1320
1320
  return `${M.lat}|${M.lng}|${M.positionTime}|${M.sog}|${M.cog}|${M.hdg}|${M.draught}|${z}|${JSON.stringify(M.meteo || {})}|${M.vendor}|${M.deleted}`;
1321
1321
  }
1322
1322
  static str2Json(M) {
1323
- const [z, O, b, c, p, A, W, o, Y, d, R] = M.split("|");
1323
+ const [z, p, b, c, O, A, W, o, Y, d, R] = M.split("|");
1324
1324
  return {
1325
1325
  lat: Number(z),
1326
- lng: Number(O),
1326
+ lng: Number(p),
1327
1327
  positionTime: Number(b),
1328
1328
  sog: Number(c),
1329
- cog: Number(p),
1329
+ cog: Number(O),
1330
1330
  hdg: Number(A),
1331
1331
  //@ts-ignore
1332
1332
  draught: isNaN(W) ? null : Number(W),
@@ -1337,34 +1337,34 @@ class t0 {
1337
1337
  deleted: R === "true"
1338
1338
  };
1339
1339
  }
1340
- static inspectStoppages(M, z = 1, O = !0) {
1340
+ static inspectStoppages(M, z = 1, p = !0) {
1341
1341
  const b = M.at(0).positionTime < M.at(-1).positionTime;
1342
1342
  b || M.sort((W, o) => W.positionTime - o.positionTime);
1343
1343
  const c = [];
1344
- let p, A;
1344
+ let O, A;
1345
1345
  for (let W = 0; W < M.length - 1; W++) {
1346
1346
  const o = M[W];
1347
- if (!(O && ["N", "B", "E", "NOON", "BOSP", "EOSP"].includes(o.type))) {
1347
+ if (!(p && ["N", "B", "E", "NOON", "BOSP", "EOSP"].includes(o.type))) {
1348
1348
  for (let Y = W + 1; Y < M.length; Y++) {
1349
1349
  const d = M[Y - 1], R = M[Y];
1350
- if (O && ["N", "B", "E", "NOON", "BOSP", "EOSP"].includes(o.type))
1350
+ if (p && ["N", "B", "E", "NOON", "BOSP", "EOSP"].includes(o.type))
1351
1351
  continue;
1352
1352
  const T = R.positionTime - d.positionTime;
1353
1353
  if (i.calculateDistance(R, d, !0, 4) / (T / 3600) < z)
1354
- p || (p = o), Y === M.length - 1 && (A = R, W = Y);
1354
+ O || (O = o), Y === M.length - 1 && (A = R, W = Y);
1355
1355
  else {
1356
- p && (A = M[Y - 1], W = Y);
1356
+ O && (A = M[Y - 1], W = Y);
1357
1357
  break;
1358
1358
  }
1359
1359
  }
1360
- if ((A == null ? void 0 : A.positionTime) > (p == null ? void 0 : p.positionTime) && p) {
1360
+ if ((A == null ? void 0 : A.positionTime) > (O == null ? void 0 : O.positionTime) && O) {
1361
1361
  const Y = {
1362
1362
  start: {
1363
- lat: p.lat,
1364
- lng: p.lng,
1365
- sog: p.sog,
1366
- positionTime: p.positionTime,
1367
- utc: B.unix(p.positionTime).utc().format()
1363
+ lat: O.lat,
1364
+ lng: O.lng,
1365
+ sog: O.sog,
1366
+ positionTime: O.positionTime,
1367
+ utc: B.unix(O.positionTime).utc().format()
1368
1368
  },
1369
1369
  end: {
1370
1370
  lat: A.lat,
@@ -1373,11 +1373,11 @@ class t0 {
1373
1373
  positionTime: A.positionTime,
1374
1374
  utc: B.unix(A.positionTime).utc().format()
1375
1375
  },
1376
- duration: A.positionTime - p.positionTime
1376
+ duration: A.positionTime - O.positionTime
1377
1377
  }, d = M.filter((T) => T.positionTime >= Y.start.positionTime && T.positionTime <= Y.end.positionTime), R = i.divideAccordingToLng(d);
1378
1378
  Y.distance = i.calculateRouteDistance(R), Y.hours = Math.round(Y.duration / 3600 * 10) / 10, Y.avgSog = Math.round(Y.distance / Y.hours * 10) / 10, c.push(Y);
1379
1379
  }
1380
- p = void 0, A = void 0;
1380
+ O = void 0, A = void 0;
1381
1381
  }
1382
1382
  }
1383
1383
  return b || M.sort((W, o) => o.positionTime - W.positionTime), c;
@@ -1388,12 +1388,12 @@ class t0 {
1388
1388
  * @param stm
1389
1389
  * @param etm
1390
1390
  */
1391
- static inspectSummary(M, z, O) {
1392
- const b = B(z), c = B(O), p = M.filter((Y) => Y.positionTime >= b.unix() && Y.positionTime <= c.unix());
1391
+ static inspectSummary(M, z, p) {
1392
+ const b = B(z), c = B(p), O = M.filter((Y) => Y.positionTime >= b.unix() && Y.positionTime <= c.unix());
1393
1393
  let A = 0, W = 0;
1394
- if (p.length > 1)
1395
- for (let Y = 0; Y < p.length - 1; Y++) {
1396
- const d = p[Y], R = p[Y + 1];
1394
+ if (O.length > 1)
1395
+ for (let Y = 0; Y < O.length - 1; Y++) {
1396
+ const d = O[Y], R = O[Y + 1];
1397
1397
  A += i.calculateDistance(d, R, !0, 4), W += Math.abs(R.positionTime - d.positionTime);
1398
1398
  }
1399
1399
  A = Math.round(A * 100) / 100, W = Math.round(W / 3600 * 100) / 100;
@@ -1403,7 +1403,7 @@ class t0 {
1403
1403
  }
1404
1404
  let Q;
1405
1405
  try {
1406
- Q = _.getLogger("meteo");
1406
+ Q = j.getLogger("meteo");
1407
1407
  } catch {
1408
1408
  } finally {
1409
1409
  }
@@ -1416,13 +1416,13 @@ class i {
1416
1416
  * @param precision
1417
1417
  * @returns {number} 单位度
1418
1418
  */
1419
- static calculateBearing(M, z, O = !0, b = 4) {
1419
+ static calculateBearing(M, z, p = !0, b = 4) {
1420
1420
  const c = f.points([
1421
1421
  [M.lng, M.lat],
1422
1422
  [z.lng, z.lat]
1423
1423
  ]);
1424
- let p;
1425
- return O ? p = f.rhumbBearing(c.features[0], c.features[1]) : p = f.bearing(c.features[0], c.features[1]), p < 0 && (p += 360), a.roundPrecision(p, b);
1424
+ let O;
1425
+ return p ? O = f.rhumbBearing(c.features[0], c.features[1]) : O = f.bearing(c.features[0], c.features[1]), O < 0 && (O += 360), a.roundPrecision(O, b);
1426
1426
  }
1427
1427
  /**
1428
1428
  * 计算两点间距离
@@ -1433,14 +1433,14 @@ class i {
1433
1433
  * @param units 单位,默认 nm(海里)
1434
1434
  * @returns {number}
1435
1435
  */
1436
- static calculateDistance(M, z, O = !0, b = 4, c = "nauticalmiles") {
1436
+ static calculateDistance(M, z, p = !0, b = 4, c = "nauticalmiles") {
1437
1437
  M = { ...M }, z = { ...z }, M.lng = a.convertToStdLng(M.lng, b), z.lng = a.convertToStdLng(z.lng, b);
1438
- const p = f.points([
1438
+ const O = f.points([
1439
1439
  [M.lng, M.lat],
1440
1440
  [z.lng, z.lat]
1441
1441
  ]);
1442
1442
  let A;
1443
- return O ? A = f.rhumbDistance(p.features[0], p.features[1], { units: c }) : A = f.distance(p.features[0], p.features[1], { units: c }), a.roundPrecision(A, b);
1443
+ return p ? A = f.rhumbDistance(O.features[0], O.features[1], { units: c }) : A = f.distance(O.features[0], O.features[1], { units: c }), a.roundPrecision(A, b);
1444
1444
  }
1445
1445
  /**
1446
1446
  * 计算航线距离
@@ -1448,14 +1448,14 @@ class i {
1448
1448
  * @param precision
1449
1449
  * @param units
1450
1450
  */
1451
- static calculateRouteDistance(M, z = 4, O = "nauticalmiles") {
1451
+ static calculateRouteDistance(M, z = 4, p = "nauticalmiles") {
1452
1452
  let b = 0, c;
1453
- for (const p of M)
1454
- for (let A = 0; A < p.length - 1; A++) {
1455
- const W = { lng: p[A][0], lat: p[A][1] };
1456
- A === 0 && c && (b += this.calculateDistance(c, W, !0, z, O));
1457
- const o = { lng: p[A + 1][0], lat: p[A + 1][1] };
1458
- b += this.calculateDistance(W, o, !0, z, O), c = o;
1453
+ for (const O of M)
1454
+ for (let A = 0; A < O.length - 1; A++) {
1455
+ const W = { lng: O[A][0], lat: O[A][1] };
1456
+ A === 0 && c && (b += this.calculateDistance(c, W, !0, z, p));
1457
+ const o = { lng: O[A + 1][0], lat: O[A + 1][1] };
1458
+ b += this.calculateDistance(W, o, !0, z, p), c = o;
1459
1459
  }
1460
1460
  return a.roundPrecision(b, z);
1461
1461
  }
@@ -1467,10 +1467,10 @@ class i {
1467
1467
  * @param units 单位,默认 nm(海里)
1468
1468
  * @param rhumb
1469
1469
  */
1470
- static calculateCoordinate(M, z, O, b = "nauticalmiles", c = !0) {
1471
- const p = f.point([M.lng, M.lat]);
1470
+ static calculateCoordinate(M, z, p, b = "nauticalmiles", c = !0) {
1471
+ const O = f.point([M.lng, M.lat]);
1472
1472
  let A;
1473
- c ? A = f.rhumbDestination(p, O, z, { units: b }) : A = f.destination(p, O, z, { units: b });
1473
+ c ? A = f.rhumbDestination(O, p, z, { units: b }) : A = f.destination(O, p, z, { units: b });
1474
1474
  const W = A.geometry.coordinates;
1475
1475
  return { lng: a.convertToStdLng(W[0], 8), lat: a.roundPrecision(W[1], 8) };
1476
1476
  }
@@ -1483,12 +1483,12 @@ class i {
1483
1483
  * @param includeTail true 包含终点 to
1484
1484
  * @param units 单位,默认 nm(海里)
1485
1485
  */
1486
- static interpolateCoordinates(M, z, O, b = !0, c = !0, p = "nauticalmiles") {
1487
- const A = [], W = this.calculateBearing(M, z, !1), o = this.calculateDistance(M, z, !1, 8, p);
1486
+ static interpolateCoordinates(M, z, p, b = !0, c = !0, O = "nauticalmiles") {
1487
+ const A = [], W = this.calculateBearing(M, z, !1), o = this.calculateDistance(M, z, !1, 8, O);
1488
1488
  b && A.push({ lng: M.lng, lat: M.lat });
1489
1489
  let Y = 0;
1490
1490
  for (; Y < o; )
1491
- Y += O, Y < o && A.push(this.calculateCoordinate(M, W, Y, p, !1));
1491
+ Y += p, Y < o && A.push(this.calculateCoordinate(M, W, Y, O, !1));
1492
1492
  return c && A.push({ lng: z.lng, lat: z.lat }), A;
1493
1493
  }
1494
1494
  /**
@@ -1503,19 +1503,19 @@ class i {
1503
1503
  * [[-170,40],[-160,30]]
1504
1504
  * ]
1505
1505
  */
1506
- static divideAccordingToLng(M, z = !1, O = !0) {
1506
+ static divideAccordingToLng(M, z = !1, p = !0) {
1507
1507
  if ((M == null ? void 0 : M.length) < 2)
1508
1508
  return [];
1509
- M = O ? this.deduplicateCoordinates(M) : M;
1509
+ M = p ? this.deduplicateCoordinates(M) : M;
1510
1510
  let b = [];
1511
1511
  const c = [];
1512
- let p, A;
1512
+ let O, A;
1513
1513
  for (let W = 0; W < M.length - 1; W++) {
1514
- p = a.convertToStdLng(M[W].lng, 8), A = a.convertToStdLng(M[W + 1].lng, 8), M[W].lat = a.roundPrecision(M[W].lat, 8), M[W + 1].lat = a.roundPrecision(M[W + 1].lat, 8), b.push([p, M[W].lat]);
1515
- const o = p - A;
1514
+ O = a.convertToStdLng(M[W].lng, 8), A = a.convertToStdLng(M[W + 1].lng, 8), M[W].lat = a.roundPrecision(M[W].lat, 8), M[W + 1].lat = a.roundPrecision(M[W + 1].lat, 8), b.push([O, M[W].lat]);
1515
+ const o = O - A;
1516
1516
  if (Math.abs(o) > 180) {
1517
1517
  const Y = a.convertToMonotonicLng2([
1518
- [p, M[W].lat],
1518
+ [O, M[W].lat],
1519
1519
  [A, M[W + 1].lat]
1520
1520
  ]);
1521
1521
  let d, R;
@@ -1542,8 +1542,8 @@ class i {
1542
1542
  */
1543
1543
  static deduplicateRoute(M) {
1544
1544
  const z = [];
1545
- for (const O of M) {
1546
- const b = O.reduce((c, p) => (c.findIndex((A) => A[0] === p[0] && A[1] === p[1]) === -1 && c.push(p), c), []);
1545
+ for (const p of M) {
1546
+ const b = p.reduce((c, O) => (c.findIndex((A) => A[0] === O[0] && A[1] === O[1]) === -1 && c.push(O), c), []);
1547
1547
  z.push(b);
1548
1548
  }
1549
1549
  return z;
@@ -1553,7 +1553,7 @@ class i {
1553
1553
  * @param coordinates
1554
1554
  */
1555
1555
  static deduplicateCoordinates(M) {
1556
- return M.reduce((z, O) => (z.findIndex((b) => b.lat === O.lat && b.lng === O.lng) === -1 && z.push(O), z), []);
1556
+ return M.reduce((z, p) => (z.findIndex((b) => b.lat === p.lat && b.lng === p.lng) === -1 && z.push(p), z), []);
1557
1557
  }
1558
1558
  /**
1559
1559
  * 移出坐标
@@ -1562,9 +1562,9 @@ class i {
1562
1562
  */
1563
1563
  static removeCoordinateFromRoute(M, z) {
1564
1564
  M.lng = a.convertToStdLng(M.lng, 8);
1565
- for (const O of z)
1566
- for (let b = O.length - 1; b >= 0; b--)
1567
- a.roundPrecision(O[b][0], 8) === M.lng && a.roundPrecision(O[b][1], 8) === a.roundPrecision(M.lat, 8) && O.splice(b, 1);
1565
+ for (const p of z)
1566
+ for (let b = p.length - 1; b >= 0; b--)
1567
+ a.roundPrecision(p[b][0], 8) === M.lng && a.roundPrecision(p[b][1], 8) === a.roundPrecision(M.lat, 8) && p.splice(b, 1);
1568
1568
  return z;
1569
1569
  }
1570
1570
  /**
@@ -1574,8 +1574,8 @@ class i {
1574
1574
  */
1575
1575
  static removeCoordinateFromWaypoints(M, z) {
1576
1576
  M.lng = a.convertToStdLng(M.lng, 8);
1577
- for (let O = z.length - 1; O >= 0; O--)
1578
- a.roundPrecision(z[O].lng, 8) === M.lng && a.roundPrecision(z[O].lat, 8) === a.roundPrecision(M.lat, 8) && z.splice(O, 1);
1577
+ for (let p = z.length - 1; p >= 0; p--)
1578
+ a.roundPrecision(z[p].lng, 8) === M.lng && a.roundPrecision(z[p].lat, 8) === a.roundPrecision(M.lat, 8) && z.splice(p, 1);
1579
1579
  return z;
1580
1580
  }
1581
1581
  /**
@@ -1591,13 +1591,13 @@ class i {
1591
1591
  */
1592
1592
  static mergeCoordinateToRoute(M, z) {
1593
1593
  M.lng = a.convertToStdLng(M.lng, 8);
1594
- let O = Number.MAX_VALUE, b = 0, c = 0, p, A;
1594
+ let p = Number.MAX_VALUE, b = 0, c = 0, O, A;
1595
1595
  return z.forEach((W, o) => {
1596
1596
  for (let Y = 0; Y < W.length - 1; Y++) {
1597
1597
  const d = { lng: W[Y][0], lat: W[Y][1] }, R = { lng: W[Y + 1][0], lat: W[Y + 1][1] }, T = this.calculatePointToLineDistance(M, d, R);
1598
- O > T && (O = T, c = Y, b = o, p = this.calculateDistance(d, M), A = this.calculateDistance(R, M));
1598
+ p > T && (p = T, c = Y, b = o, O = this.calculateDistance(d, M), A = this.calculateDistance(R, M));
1599
1599
  }
1600
- }), p !== 0 && A !== 0 ? z[b].splice(c + 1, 0, [M.lng, M.lat]) : p === 0 ? z[b].splice(c, 1, [M.lng, M.lat]) : A === 0 && z[b].splice(c + 1, 1, [M.lng, M.lat]), z;
1600
+ }), O !== 0 && A !== 0 ? z[b].splice(c + 1, 0, [M.lng, M.lat]) : O === 0 ? z[b].splice(c, 1, [M.lng, M.lat]) : A === 0 && z[b].splice(c + 1, 1, [M.lng, M.lat]), z;
1601
1601
  }
1602
1602
  /**
1603
1603
  * 向Route尾加1个坐标
@@ -1606,8 +1606,8 @@ class i {
1606
1606
  */
1607
1607
  static appendCoordinateToRoute(M, z) {
1608
1608
  M.lng = a.convertToStdLng(M.lng, 8);
1609
- const O = i.convertRouteToCoordinates(z);
1610
- return O.push(M), i.divideAccordingToLng(O);
1609
+ const p = i.convertRouteToCoordinates(z);
1610
+ return p.push(M), i.divideAccordingToLng(p);
1611
1611
  }
1612
1612
  /**
1613
1613
  * 向route头加1个坐标
@@ -1615,8 +1615,8 @@ class i {
1615
1615
  * @param route
1616
1616
  */
1617
1617
  static unshiftCoordinateToRoute(M, z) {
1618
- const O = i.convertRouteToCoordinates(z);
1619
- return O.unshift(M), i.divideAccordingToLng(O);
1618
+ const p = i.convertRouteToCoordinates(z);
1619
+ return p.unshift(M), i.divideAccordingToLng(p);
1620
1620
  }
1621
1621
  /**
1622
1622
  * 合并多个waypoints进航线
@@ -1624,8 +1624,8 @@ class i {
1624
1624
  * @param route 航线 [[[lng, lat],[lng, lat]]]
1625
1625
  */
1626
1626
  static mergeWaypointsToRoute(M, z) {
1627
- for (const O of M)
1628
- z = this.mergeCoordinateToRoute(O, z);
1627
+ for (const p of M)
1628
+ z = this.mergeCoordinateToRoute(p, z);
1629
1629
  return z;
1630
1630
  }
1631
1631
  /**
@@ -1635,15 +1635,15 @@ class i {
1635
1635
  * @param route [[[lng, lat]]]
1636
1636
  * @return [[[lng, lat]]]
1637
1637
  */
1638
- static calculateRangeRoute(M, z, O) {
1639
- O = this.mergeWaypointsToRoute([M, z], O);
1638
+ static calculateRangeRoute(M, z, p) {
1639
+ p = this.mergeWaypointsToRoute([M, z], p);
1640
1640
  const b = [];
1641
1641
  let c = 0;
1642
- return O.forEach((p) => {
1642
+ return p.forEach((O) => {
1643
1643
  if (c === 2)
1644
1644
  return;
1645
1645
  const A = [];
1646
- for (const W of p) {
1646
+ for (const W of O) {
1647
1647
  if (a.roundPrecision(z.lng, 8) === a.roundPrecision(W[0], 8) && a.roundPrecision(z.lat, 8) === a.roundPrecision(W[1], 8)) {
1648
1648
  A.push(W), c === 0 && A.push([M.lng, M.lat]), c = 2;
1649
1649
  break;
@@ -1661,13 +1661,13 @@ class i {
1661
1661
  * @param waypoints
1662
1662
  * @return [{lng, lat}]
1663
1663
  */
1664
- static calculateRangeWaypoints(M, z, O, b = []) {
1665
- const c = this.convertRouteToCoordinates(O, 0), p = this.mergeCoordinatesToWaypoints([M, z], c.length ? c : b), A = p.findIndex(
1664
+ static calculateRangeWaypoints(M, z, p, b = []) {
1665
+ const c = this.convertRouteToCoordinates(p, 0), O = this.mergeCoordinatesToWaypoints([M, z], c.length ? c : b), A = O.findIndex(
1666
1666
  (Y) => a.roundPrecision(M.lng, 8) === a.roundPrecision(Y.lng, 8) && a.roundPrecision(M.lat, 8) === a.roundPrecision(Y.lat, 8)
1667
- ), W = p.findIndex(
1667
+ ), W = O.findIndex(
1668
1668
  (Y) => a.roundPrecision(z.lng, 8) === a.roundPrecision(Y.lng, 8) && a.roundPrecision(z.lat, 8) === a.roundPrecision(Y.lat, 8)
1669
1669
  );
1670
- return p.filter((Y, d) => d >= A && d <= W);
1670
+ return O.filter((Y, d) => d >= A && d <= W);
1671
1671
  }
1672
1672
  /**
1673
1673
  * 计算坐标到航路上的最短距离
@@ -1675,13 +1675,13 @@ class i {
1675
1675
  * @param route
1676
1676
  */
1677
1677
  static calculateMinDistanceToRoute(M, z) {
1678
- let O = Number.MAX_VALUE, b = 0, c = 0;
1679
- return z.forEach((p, A) => {
1680
- for (let W = 0; W < p.length - 1; W++) {
1681
- const o = { lng: p[W][0], lat: p[W][1] }, Y = { lng: p[W + 1][0], lat: p[W + 1][1] }, d = this.calculatePointToLineDistance(M, o, Y);
1682
- O > d && (O = d, b = W, c = A);
1678
+ let p = Number.MAX_VALUE, b = 0, c = 0;
1679
+ return z.forEach((O, A) => {
1680
+ for (let W = 0; W < O.length - 1; W++) {
1681
+ const o = { lng: O[W][0], lat: O[W][1] }, Y = { lng: O[W + 1][0], lat: O[W + 1][1] }, d = this.calculatePointToLineDistance(M, o, Y);
1682
+ p > d && (p = d, b = W, c = A);
1683
1683
  }
1684
- }), { minDist: O, segIndex: c, minIndex: b };
1684
+ }), { minDist: p, segIndex: c, minIndex: b };
1685
1685
  }
1686
1686
  /**
1687
1687
  * 计算子航线
@@ -1690,11 +1690,11 @@ class i {
1690
1690
  * @return [[[lng, lat]]]
1691
1691
  */
1692
1692
  static calculateSubRoute(M, z) {
1693
- const O = i.convertRouteToCoordinates(z);
1694
- i.mergeCoordinateToWaypoints(M, O, !0), z = i.divideAccordingToLng(O);
1693
+ const p = i.convertRouteToCoordinates(z);
1694
+ i.mergeCoordinateToWaypoints(M, p, !0), z = i.divideAccordingToLng(p);
1695
1695
  const { segIndex: b, minIndex: c } = this.calculateMinDistanceToRoute({ ...M }, z);
1696
1696
  M.lng = a.convertToStdLng(M.lng);
1697
- const p = [];
1697
+ const O = [];
1698
1698
  let A = !0;
1699
1699
  for (let W = b; W < z.length; W++)
1700
1700
  if (A) {
@@ -1702,10 +1702,10 @@ class i {
1702
1702
  o.push([M.lng, M.lat]);
1703
1703
  for (let Y = c + 1; Y < z[W].length; Y++)
1704
1704
  M.lng === z[W][Y][0] && M.lat === z[W][Y][1] || o.push(z[W][Y]);
1705
- p.push(o), A = !1;
1705
+ O.push(o), A = !1;
1706
1706
  } else
1707
- p.push([...z[W]]);
1708
- return p;
1707
+ O.push([...z[W]]);
1708
+ return O;
1709
1709
  }
1710
1710
  /**
1711
1711
  * 计算子途经点
@@ -1714,20 +1714,20 @@ class i {
1714
1714
  * @return [{lng, lat}]
1715
1715
  */
1716
1716
  static calculateSubWaypoints(M, z) {
1717
- let O = Number.MAX_VALUE, b = 0;
1718
- for (let p = 0; p < z.length - 1; p++) {
1719
- const A = z[p], W = z[p + 1];
1717
+ let p = Number.MAX_VALUE, b = 0;
1718
+ for (let O = 0; O < z.length - 1; O++) {
1719
+ const A = z[O], W = z[O + 1];
1720
1720
  if (this.calculateDistance(M, A) === 0)
1721
1721
  return z;
1722
1722
  if (this.calculateDistance(M, W) === 0)
1723
1723
  return z.filter((Y, d) => d > 0);
1724
1724
  const o = this.calculatePointToLineDistance(M, A, W);
1725
- O > o && (O = o, b = p);
1725
+ p > o && (p = o, b = O);
1726
1726
  }
1727
1727
  M.lng = a.convertToStdLng(M.lng);
1728
1728
  const c = [M];
1729
- for (let p = b + 1; p < z.length; p++)
1730
- c.push(z[p]);
1729
+ for (let O = b + 1; O < z.length; O++)
1730
+ c.push(z[O]);
1731
1731
  return c;
1732
1732
  }
1733
1733
  /**
@@ -1737,14 +1737,14 @@ class i {
1737
1737
  * @param to { lng, lat }
1738
1738
  * @param options
1739
1739
  */
1740
- static calculatePointToLineDistance(M, z, O, b = { units: "nauticalmiles", method: "geodesic" }) {
1741
- M.lng = a.convertToStdLng(M.lng, 8), z = { ...z }, O = { ...O }, z.lng = a.convertToStdLng(z.lng, 8), O.lng = a.convertToStdLng(O.lng, 8);
1742
- const c = a.convertToMonotonicLng([z, O]);
1743
- z = c[0], O = c[1];
1744
- const p = f.lineString([
1740
+ static calculatePointToLineDistance(M, z, p, b = { units: "nauticalmiles", method: "geodesic" }) {
1741
+ M.lng = a.convertToStdLng(M.lng, 8), z = { ...z }, p = { ...p }, z.lng = a.convertToStdLng(z.lng, 8), p.lng = a.convertToStdLng(p.lng, 8);
1742
+ const c = a.convertToMonotonicLng([z, p]);
1743
+ z = c[0], p = c[1];
1744
+ const O = f.lineString([
1745
1745
  [z.lng, z.lat],
1746
- [O.lng, O.lat]
1747
- ]), A = f.pointToLineDistance(f.point([M.lng, M.lat]), p, b), W = f.pointToLineDistance(f.point([M.lng > 0 ? M.lng - 360 : M.lng + 360, M.lat]), p, b);
1746
+ [p.lng, p.lat]
1747
+ ]), A = f.pointToLineDistance(f.point([M.lng, M.lat]), O, b), W = f.pointToLineDistance(f.point([M.lng > 0 ? M.lng - 360 : M.lng + 360, M.lat]), O, b);
1748
1748
  return a.roundPrecision(Math.min(A, W), 6);
1749
1749
  }
1750
1750
  /**
@@ -1754,9 +1754,9 @@ class i {
1754
1754
  */
1755
1755
  static calculateWaypointsPropInRoute(M, z) {
1756
1756
  z = this.mergeWaypointsToRoute(M, z);
1757
- for (let O = 0; O < M.length - 1; O++) {
1758
- const b = M[O], c = M[O + 1], p = this.calculateRangeRoute(b, c, z);
1759
- O === 0 && (b.distanceFromPrevious = 0, b.distanceFromStart = 0), c.distanceFromPrevious = this.calculateRouteDistance(p), c.distanceFromStart = a.roundPrecision((b.distanceFromStart || 0) + c.distanceFromPrevious);
1757
+ for (let p = 0; p < M.length - 1; p++) {
1758
+ const b = M[p], c = M[p + 1], O = this.calculateRangeRoute(b, c, z);
1759
+ p === 0 && (b.distanceFromPrevious = 0, b.distanceFromStart = 0), c.distanceFromPrevious = this.calculateRouteDistance(O), c.distanceFromStart = a.roundPrecision((b.distanceFromStart || 0) + c.distanceFromPrevious);
1760
1760
  }
1761
1761
  return M;
1762
1762
  }
@@ -1765,9 +1765,9 @@ class i {
1765
1765
  * @param waypoints [{lng, lat}]
1766
1766
  * @param replace true replace the same waypoint with coordinate
1767
1767
  */
1768
- static mergeCoordinatesToWaypoints(M, z, O = !0) {
1768
+ static mergeCoordinatesToWaypoints(M, z, p = !0) {
1769
1769
  for (const b of M)
1770
- this.mergeCoordinateToWaypoints(b, z, O);
1770
+ this.mergeCoordinateToWaypoints(b, z, p);
1771
1771
  return z;
1772
1772
  }
1773
1773
  /**
@@ -1782,17 +1782,17 @@ class i {
1782
1782
  * @return
1783
1783
  * [{ lng: 160, lat: 30}, { lng: 170, lat: 40}, {lng: 179, lat: 50}, {lng: -170, lat: 40}, {lng: -160, lat: 30}]
1784
1784
  */
1785
- static mergeCoordinateToWaypoints(M, z, O = !0) {
1785
+ static mergeCoordinateToWaypoints(M, z, p = !0) {
1786
1786
  M.lng = a.convertToStdLng(M.lng, 8);
1787
- let b = Number.MAX_VALUE, c = 0, p = 0, A = 0;
1787
+ let b = Number.MAX_VALUE, c = 0, O = 0, A = 0;
1788
1788
  if (z.length < 2)
1789
1789
  z.push(M);
1790
1790
  else {
1791
1791
  for (let W = 0; W < z.length - 1; W++) {
1792
1792
  const o = { lng: z[W].lng, lat: z[W].lat }, Y = { lng: z[W + 1].lng, lat: z[W + 1].lat }, d = this.calculatePointToLineDistance(M, o, Y);
1793
- b >= d && (b = d, c = W, p = this.calculateDistance(o, M, !1, 6), A = this.calculateDistance(Y, M, !1, 6));
1793
+ b >= d && (b = d, c = W, O = this.calculateDistance(o, M, !1, 6), A = this.calculateDistance(Y, M, !1, 6));
1794
1794
  }
1795
- p !== 0 && A !== 0 ? p <= b && c === 0 ? z.unshift(M) : A <= b && c === z.length - 2 ? z.push(M) : z.splice(c + 1, 0, M) : p === 0 ? O ? z.splice(c, 1, M) : z.splice(c + 1, 0, M) : A === 0 && (O ? z.splice(c + 1, 1, M) : z.splice(c + 1, 0, M));
1795
+ O !== 0 && A !== 0 ? O <= b && c === 0 ? z.unshift(M) : A <= b && c === z.length - 2 ? z.push(M) : z.splice(c + 1, 0, M) : O === 0 ? p ? z.splice(c, 1, M) : z.splice(c + 1, 0, M) : A === 0 && (p ? z.splice(c + 1, 1, M) : z.splice(c + 1, 0, M));
1796
1796
  }
1797
1797
  return z.map((W, o) => {
1798
1798
  W.lng = a.convertToStdLng(W.lng);
@@ -1811,17 +1811,17 @@ class i {
1811
1811
  * @param rhumb
1812
1812
  * @param deduplicate
1813
1813
  */
1814
- static generateRouteAccordingToWaypoints(M, z = !0, O = !0) {
1814
+ static generateRouteAccordingToWaypoints(M, z = !0, p = !0) {
1815
1815
  const b = [];
1816
1816
  for (let c = 1; c < M.length; c++) {
1817
- const p = M[c - 1], A = M[c];
1818
- if (c === 1 && b.push(p), A.gcToPrevious) {
1819
- const W = this.interpolateCoordinates(p, A, 200, !1, !0, "nauticalmiles");
1817
+ const O = M[c - 1], A = M[c];
1818
+ if (c === 1 && b.push(O), A.gcToPrevious) {
1819
+ const W = this.interpolateCoordinates(O, A, 200, !1, !0, "nauticalmiles");
1820
1820
  b.push(...W);
1821
1821
  } else
1822
1822
  b.push(A);
1823
1823
  }
1824
- return this.divideAccordingToLng(b, z, O);
1824
+ return this.divideAccordingToLng(b, z, p);
1825
1825
  }
1826
1826
  /**
1827
1827
  * 最近点(从route中找出距离目标点最近的点)
@@ -1829,7 +1829,7 @@ class i {
1829
1829
  * @param route [[[lng, lat]]]
1830
1830
  */
1831
1831
  static nearestCoordinateInRoute(M, z) {
1832
- const O = f.point([M.lng, M.lat]), c = this.convertRouteToCoordinates(z).map((o) => [o.lng, o.lat]), p = f.lineString(c), A = f.nearestPointOnLine(p, O), W = f.getCoord(A);
1832
+ const p = f.point([M.lng, M.lat]), c = this.convertRouteToCoordinates(z).map((o) => [o.lng, o.lat]), O = f.lineString(c), A = f.nearestPointOnLine(O, p), W = f.getCoord(A);
1833
1833
  return { lng: a.roundPrecision(W[0], 8), lat: a.roundPrecision(W[1], 8) };
1834
1834
  }
1835
1835
  /**
@@ -1838,20 +1838,20 @@ class i {
1838
1838
  * @param waypoints
1839
1839
  */
1840
1840
  static calculatePrevWaypoint(M, z) {
1841
- let O = 0;
1841
+ let p = 0;
1842
1842
  this.mergeCoordinateToWaypoints(M, z);
1843
1843
  for (let b = 0; b < z.length - 1; b++) {
1844
- const c = z[b], p = z[b + 1];
1844
+ const c = z[b], O = z[b + 1];
1845
1845
  if (this.calculateDistance(M, c) === 0) {
1846
- O = b;
1846
+ p = b;
1847
1847
  break;
1848
1848
  }
1849
- if (this.calculateDistance(M, p) === 0) {
1850
- O = b + 1;
1849
+ if (this.calculateDistance(M, O) === 0) {
1850
+ p = b + 1;
1851
1851
  break;
1852
1852
  }
1853
1853
  }
1854
- return z[O === 0 ? 0 : O - 1];
1854
+ return z[p === 0 ? 0 : p - 1];
1855
1855
  }
1856
1856
  /**
1857
1857
  * 计算下一个距离单位的坐标及其子航线
@@ -1861,11 +1861,11 @@ class i {
1861
1861
  * @param units
1862
1862
  * @return { coordinate: {lng, lat}, route: [[[lng, lat]]]}
1863
1863
  */
1864
- static calculateNextCoordinateAlongRoute(M, z, O, b = "nauticalmiles") {
1864
+ static calculateNextCoordinateAlongRoute(M, z, p, b = "nauticalmiles") {
1865
1865
  var R;
1866
- const c = M.speed || 12, p = [];
1866
+ const c = M.speed || 12, O = [];
1867
1867
  let A = [], W = !1, o = 0, Y = 0, d;
1868
- if (z && O.length ? (p.push(M), O.forEach((T, r) => {
1868
+ if (z && p.length ? (O.push(M), p.forEach((T, r) => {
1869
1869
  if (W)
1870
1870
  A.push(T);
1871
1871
  else {
@@ -1878,7 +1878,7 @@ class i {
1878
1878
  S = { lng: T[s][0], lat: T[s][1] };
1879
1879
  const P = this.calculateDistance(M, S, !0, 8, b);
1880
1880
  if (o += P, o < z)
1881
- Y += P, P && p.push(S), M = S;
1881
+ Y += P, P && O.push(S), M = S;
1882
1882
  else {
1883
1883
  if (Y = z, o === z)
1884
1884
  d = S, e.push([d.lng, d.lat]);
@@ -1889,15 +1889,15 @@ class i {
1889
1889
  W = !0;
1890
1890
  }
1891
1891
  }
1892
- e.length && A.push(e), r === O.length - 1 && !d && (d = S);
1892
+ e.length && A.push(e), r === p.length - 1 && !d && (d = S);
1893
1893
  }
1894
- })) : (A = O, d = { ...M }), d)
1895
- if (p.push(d), d.distanceFromPrevious = Math.round(Y * 1e4) / 1e4, d.hourFromPrevious = Math.round(Y / c * 1e4) / 1e4, ((R = A[0]) == null ? void 0 : R.length) > 1) {
1894
+ })) : (A = p, d = { ...M }), d)
1895
+ if (O.push(d), d.distanceFromPrevious = Math.round(Y * 1e4) / 1e4, d.hourFromPrevious = Math.round(Y / c * 1e4) / 1e4, ((R = A[0]) == null ? void 0 : R.length) > 1) {
1896
1896
  const T = { lng: A[0][1][0], lat: A[0][1][1] };
1897
1897
  d.bearing = this.calculateBearing(d, T);
1898
1898
  } else
1899
1899
  d.bearing = 0;
1900
- return { coordinate: d, nextRoute: A, prevRoute: p };
1900
+ return { coordinate: d, nextRoute: A, prevRoute: O };
1901
1901
  }
1902
1902
  /**
1903
1903
  * 返回最近点及其是否为垂足(最近点不是起点或终点)
@@ -1905,12 +1905,12 @@ class i {
1905
1905
  * @param from {lng, lat}
1906
1906
  * @param to {lng, lat}
1907
1907
  */
1908
- static nearestCoordinateInLine(M, z, O) {
1909
- const b = a.convertToStdLng(M.lng, 6), c = f.point([b, M.lat]), p = a.convertToStdLng(z.lng, 6), A = a.convertToStdLng(O.lng, 6), W = f.lineString([
1910
- [p, z.lat],
1911
- [A, O.lat]
1908
+ static nearestCoordinateInLine(M, z, p) {
1909
+ const b = a.convertToStdLng(M.lng, 6), c = f.point([b, M.lat]), O = a.convertToStdLng(z.lng, 6), A = a.convertToStdLng(p.lng, 6), W = f.lineString([
1910
+ [O, z.lat],
1911
+ [A, p.lat]
1912
1912
  ]), o = f.nearestPointOnLine(W, c), Y = f.getCoord(o), d = a.roundPrecision(Y[0], 6), R = a.roundPrecision(Y[1], 6);
1913
- return { lng: d, lat: R, inline: !(d === p && R === z.lat) && !(d === A && R === O.lat) };
1913
+ return { lng: d, lat: R, inline: !(d === O && R === z.lat) && !(d === A && R === p.lat) };
1914
1914
  }
1915
1915
  /**
1916
1916
  * 将route转coordinate
@@ -1918,22 +1918,22 @@ class i {
1918
1918
  * @param distance 临近点过虑
1919
1919
  */
1920
1920
  static convertRouteToCoordinates(M, z = 0) {
1921
- const O = [];
1921
+ const p = [];
1922
1922
  let b, c;
1923
- return M.forEach((p) => {
1924
- p.forEach((A) => {
1923
+ return M.forEach((O) => {
1924
+ O.forEach((A) => {
1925
1925
  const W = { lng: a.roundPrecision(A[0], 8), lat: a.roundPrecision(A[1], 8) };
1926
1926
  if (!c)
1927
- O.push(W), c = W;
1927
+ p.push(W), c = W;
1928
1928
  else if (c.bearing === void 0 || c.bearing === null)
1929
1929
  c.bearing = this.calculateBearing(c, W, !0);
1930
1930
  else {
1931
1931
  const o = this.calculateDistance(b, W, !0);
1932
- o && o >= z && (b.bearing = this.calculateBearing(b, W, !0), O.push(b), c = b);
1932
+ o && o >= z && (b.bearing = this.calculateBearing(b, W, !0), p.push(b), c = b);
1933
1933
  }
1934
1934
  b = W;
1935
1935
  });
1936
- }), b && O.push(b), O;
1936
+ }), b && p.push(b), p;
1937
1937
  }
1938
1938
  /**
1939
1939
  * 抽稀(基于转向点)
@@ -1941,8 +1941,8 @@ class i {
1941
1941
  * @param waypoints [{ lng, lat, gcToPrevious }]
1942
1942
  * @param distance
1943
1943
  */
1944
- static simplifyRouteToCoordinates(M, z, O = 1) {
1945
- let b = this.convertRouteToCoordinates(M, O);
1944
+ static simplifyRouteToCoordinates(M, z, p = 1) {
1945
+ let b = this.convertRouteToCoordinates(M, p);
1946
1946
  return b = this.simplifyGCCoordinates(b, z), b;
1947
1947
  }
1948
1948
  /**
@@ -1955,17 +1955,17 @@ class i {
1955
1955
  this.mergeCoordinateToWaypoints(b, M, !0);
1956
1956
  });
1957
1957
  for (let b = 1; b < z.length; b++) {
1958
- const c = z[b - 1], p = z[b];
1959
- if (p.gcToPrevious) {
1960
- const A = M.findIndex((o) => o.lng === c.lng && o.lat === c.lat), W = M.findIndex((o) => o.lng === p.lng && o.lat === p.lat);
1958
+ const c = z[b - 1], O = z[b];
1959
+ if (O.gcToPrevious) {
1960
+ const A = M.findIndex((o) => o.lng === c.lng && o.lat === c.lat), W = M.findIndex((o) => o.lng === O.lng && o.lat === O.lat);
1961
1961
  for (let o = W - 1; o > A; o--)
1962
1962
  M.splice(o, 1);
1963
1963
  }
1964
1964
  }
1965
- let O = 0;
1965
+ let p = 0;
1966
1966
  for (let b = 1; b < M.length; b++) {
1967
- const c = M[b - 1], p = M[b];
1968
- p.gcToPrevious ? (c.bearing = this.calculateBearing(c, p, !1), p.distanceFromPrevious = this.calculateDistance(c, p, !1)) : (c.bearing = this.calculateBearing(c, p, !0), p.distanceFromPrevious = this.calculateDistance(c, p, !0)), O = a.roundPrecision(O + p.distanceFromPrevious), p.distanceFromStart = O;
1967
+ const c = M[b - 1], O = M[b];
1968
+ O.gcToPrevious ? (c.bearing = this.calculateBearing(c, O, !1), O.distanceFromPrevious = this.calculateDistance(c, O, !1)) : (c.bearing = this.calculateBearing(c, O, !0), O.distanceFromPrevious = this.calculateDistance(c, O, !0)), p = a.roundPrecision(p + O.distanceFromPrevious), O.distanceFromStart = p;
1969
1969
  }
1970
1970
  return M.map((b) => (b.lng = a.convertToStdLng(b.lng), b));
1971
1971
  }
@@ -1978,11 +1978,11 @@ class i {
1978
1978
  for (const A of M)
1979
1979
  for (const W of A)
1980
1980
  z.push(W);
1981
- const O = f.featureCollection([]), b = a.convertToMonotonicLng2(z);
1981
+ const p = f.featureCollection([]), b = a.convertToMonotonicLng2(z);
1982
1982
  for (const A of b)
1983
- O.features.push(f.point(A));
1984
- const p = f.center(O).geometry.coordinates;
1985
- return { lng: a.convertToStdLng(p[0], 8), lat: a.roundPrecision(p[1], 8) };
1983
+ p.features.push(f.point(A));
1984
+ const O = f.center(p).geometry.coordinates;
1985
+ return { lng: a.convertToStdLng(O[0], 8), lat: a.roundPrecision(O[1], 8) };
1986
1986
  }
1987
1987
  /**
1988
1988
  * 计算中心点
@@ -1999,9 +1999,9 @@ class i {
1999
1999
  static calculateBBox(M) {
2000
2000
  const z = [];
2001
2001
  for (const c of M)
2002
- for (const p of c)
2003
- z.push(p);
2004
- const O = a.convertToMonotonicLng2(z), b = f.lineString(O);
2002
+ for (const O of c)
2003
+ z.push(O);
2004
+ const p = a.convertToMonotonicLng2(z), b = f.lineString(p);
2005
2005
  return f.bbox(b);
2006
2006
  }
2007
2007
  /**
@@ -2018,14 +2018,14 @@ class i {
2018
2018
  * @param distance 三点最小距离, 小于此距离时,B点将被忽略(三点太近)
2019
2019
  * @param angle 三点夹角, 大于此角度时,B点将被忽略(近似走RL)
2020
2020
  */
2021
- static simplifyCoordinates(M, z = 1, O = 180) {
2021
+ static simplifyCoordinates(M, z = 1, p = 180) {
2022
2022
  const b = [];
2023
2023
  for (let c = 1; c < M.length; c++) {
2024
- const p = M[c - 1], A = M[c], W = M[c + 1];
2024
+ const O = M[c - 1], A = M[c], W = M[c + 1];
2025
2025
  let o = !1, Y = !1;
2026
- if ((p.velocity || p.suspend || p.important || p.pilot || c === 1) && (o = !0, b.push(p)), A.gcToPrevious && (o || (o = !0, b.push(p)), Y = !0, b.push(A), c++), W) {
2027
- const d = i.calculateDistance(p, A, !0), R = i.calculateDistance(A, W, !0), T = i.calculateDistance(p, W, !0), r = (Math.pow(d, 2) + Math.pow(R, 2) - Math.pow(T, 2)) / (2 * d * R);
2028
- Math.round(Math.acos(r) * 180 / Math.PI) < O && T > z && !Y && (b.push(A), c++);
2026
+ if ((O.velocity || O.suspend || O.important || O.pilot || c === 1) && (o = !0, b.push(O)), A.gcToPrevious && (o || (o = !0, b.push(O)), Y = !0, b.push(A), c++), W) {
2027
+ const d = i.calculateDistance(O, A, !0), R = i.calculateDistance(A, W, !0), T = i.calculateDistance(O, W, !0), r = (Math.pow(d, 2) + Math.pow(R, 2) - Math.pow(T, 2)) / (2 * d * R);
2028
+ Math.round(Math.acos(r) * 180 / Math.PI) < p && T > z && !Y && (b.push(A), c++);
2029
2029
  }
2030
2030
  if (c >= M.length - 1) {
2031
2031
  const d = M.at(-1);
@@ -2040,11 +2040,11 @@ class i {
2040
2040
  * @param step 时间步长, 前后n小时
2041
2041
  * @param waypoints 带时间的轨迹, 单位秒
2042
2042
  */
2043
- static nearestTSPointInWaypoints(M, z, O) {
2044
- const b = B.unix(M), c = O.filter(
2045
- (p) => b.clone().subtract(z, "hour").unix() <= (p.positionTime || 0) && b.clone().add(z, "h").unix() >= (p.positionTime || 0)
2043
+ static nearestTSPointInWaypoints(M, z, p) {
2044
+ const b = B.unix(M), c = p.filter(
2045
+ (O) => b.clone().subtract(z, "hour").unix() <= (O.positionTime || 0) && b.clone().add(z, "h").unix() >= (O.positionTime || 0)
2046
2046
  );
2047
- return c.sort((p, A) => (p.positionTime || 0) - (A.positionTime || 0)), c.at(-1);
2047
+ return c.sort((O, A) => (O.positionTime || 0) - (A.positionTime || 0)), c.at(-1);
2048
2048
  }
2049
2049
  /**
2050
2050
  * 推测船位
@@ -2052,15 +2052,15 @@ class i {
2052
2052
  * @param positions 带时间(positionTime)的轨迹
2053
2053
  */
2054
2054
  static deadReckoning(M, z) {
2055
- var c, p, A, W;
2055
+ var c, O, A, W;
2056
2056
  M > 1e12 && (M = Math.round(M / 1e3));
2057
- const O = B.unix(M);
2058
- let b = z.find((o) => o.positionTime === O.unix());
2057
+ const p = B.unix(M);
2058
+ let b = z.find((o) => o.positionTime === p.unix());
2059
2059
  if (!b) {
2060
- const o = (p = (c = z.filter((d) => (d == null ? void 0 : d.positionTime) < O.unix())) == null ? void 0 : c.sort((d, R) => (d.positionTime || 0) - (R.positionTime || 0))) == null ? void 0 : p.at(-1), Y = (W = (A = z.filter((d) => (d == null ? void 0 : d.positionTime) > O.unix())) == null ? void 0 : A.sort((d, R) => (d.positionTime || 0) - (R.positionTime || 0))) == null ? void 0 : W.at(0);
2060
+ const o = (O = (c = z.filter((d) => (d == null ? void 0 : d.positionTime) < p.unix())) == null ? void 0 : c.sort((d, R) => (d.positionTime || 0) - (R.positionTime || 0))) == null ? void 0 : O.at(-1), Y = (W = (A = z.filter((d) => (d == null ? void 0 : d.positionTime) > p.unix())) == null ? void 0 : A.sort((d, R) => (d.positionTime || 0) - (R.positionTime || 0))) == null ? void 0 : W.at(0);
2061
2061
  if (o && Y) {
2062
- const d = i.calculateBearing(o, Y, !0), R = i.calculateDistance(o, Y), T = (O.unix() - o.positionTime) / (Y.positionTime - o.positionTime);
2063
- b = i.calculateCoordinate(o, d, R * T), b.positionTime = O.unix(), b.utc = O.utc().format(), b.cog = d, b.sog = Math.round(R / ((Y.positionTime - o.positionTime) / 3600) * 100) / 100;
2062
+ const d = i.calculateBearing(o, Y, !0), R = i.calculateDistance(o, Y), T = (p.unix() - o.positionTime) / (Y.positionTime - o.positionTime);
2063
+ b = i.calculateCoordinate(o, d, R * T), b.positionTime = p.unix(), b.utc = p.utc().format(), b.cog = d, b.sog = Math.round(R / ((Y.positionTime - o.positionTime) / 3600) * 100) / 100;
2064
2064
  } else
2065
2065
  b = o || Y, b && (b.utc = B.unix(b == null ? void 0 : b.positionTime).utc().format());
2066
2066
  }
@@ -2073,18 +2073,18 @@ class i {
2073
2073
  */
2074
2074
  static deadReckoningTime(M, z) {
2075
2075
  z = JSON.parse(JSON.stringify(z)), z.sort((o, Y) => (o.positionTime || 0) - (Y.positionTime || 0));
2076
- let O = Number.MAX_SAFE_INTEGER, b = Number.MAX_SAFE_INTEGER;
2076
+ let p = Number.MAX_SAFE_INTEGER, b = Number.MAX_SAFE_INTEGER;
2077
2077
  for (let o = 0; o < z.length - 1; o++) {
2078
2078
  const Y = z[o], d = z[o + 1], R = i.calculatePointToLineDistance(M, Y, d);
2079
- R < O && (O = R, b = o);
2079
+ R < p && (p = R, b = o);
2080
2080
  }
2081
- const c = z[b], p = z[b + 1], A = i.calculateDistance(c, M), W = i.calculateDistance(p, M);
2081
+ const c = z[b], O = z[b + 1], A = i.calculateDistance(c, M), W = i.calculateDistance(O, M);
2082
2082
  if (A === 0)
2083
2083
  M = c;
2084
2084
  else if (W === 0)
2085
- M = p;
2085
+ M = O;
2086
2086
  else {
2087
- const o = c.positionTime || 0, Y = p.positionTime || 0, d = i.calculateDistance(c, p);
2087
+ const o = c.positionTime || 0, Y = O.positionTime || 0, d = i.calculateDistance(c, O);
2088
2088
  M.positionTime = Math.round(o + (Y - o) * (A / d));
2089
2089
  }
2090
2090
  return M.utc = M.positionTime ? B.unix(M.positionTime).utc().format() : void 0, M.positionTime ? M : void 0;
@@ -2095,8 +2095,8 @@ class i {
2095
2095
  */
2096
2096
  static reverseRoute(M) {
2097
2097
  const z = [];
2098
- for (const O of M)
2099
- z.push(O.reverse());
2098
+ for (const p of M)
2099
+ z.push(p.reverse());
2100
2100
  return z;
2101
2101
  }
2102
2102
  /**
@@ -2114,7 +2114,7 @@ class i {
2114
2114
  return M == null ? "" : String(M).trim().replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
2115
2115
  }
2116
2116
  /**
2117
- * 路径转RTZ
2117
+ * 路径转RTZ 1.2
2118
2118
  * @param name 路径名称
2119
2119
  * @param waypoints 途径点
2120
2120
  * @see https://cirm.org/rtz-xml-schemas
@@ -2123,35 +2123,51 @@ class i {
2123
2123
  */
2124
2124
  static waypoints2RTZ(M, z) {
2125
2125
  const b = [];
2126
- b.push('<?xml version="1.0" encoding="UTF-8"?>'), b.push('<route xmlns="http://www.cirm.org/RTZ/1/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2">'), b.push(` <routeInfo routeName="${i.xmlEscape(M)}"></routeInfo>`), b.push(" <waypoints>");
2127
- for (let c = 0; c < z.length; c++) {
2128
- const p = z[c], A = c + 1, W = (p.lat ?? "").toFixed ? p.lat.toFixed(6).padEnd(6 + 2, "0") : p.lat, o = (p.lng ?? "").toFixed ? p.lng.toFixed(6).padEnd(6 + 2, "0") : p.lng;
2129
- if (b.push(` <waypoint id="${A}" revision="0">`), p.name && b.push(` <name>${i.xmlEscape(p.name)}</name>`), p.description && b.push(` <description>${i.xmlEscape(p.description)}</description>`), b.push(` <position lat="${i.xmlEscape(W)}" lon="${i.xmlEscape(o)}" />`), p.utc)
2130
- b.push(` <time>${i.xmlEscape(p.utc)}</time>`);
2131
- else if (p.positionTime)
2126
+ return b.push('<?xml version="1.0" encoding="UTF-8"?>'), b.push('<route xmlns="http://www.cirm.org/RTZ/1/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2">'), b.push(` <routeInfo routeName="${i.xmlEscape(M)}"></routeInfo>`), b.push(...i.toRTZWaypoints(z, 6)), b.push("</route>"), b.join(`
2127
+ `);
2128
+ }
2129
+ /**
2130
+ * 路径转RTZ 1.0
2131
+ * @param name 路径名称
2132
+ * @param waypoints 途径点
2133
+ * @see https://cirm.org/rtz-xml-schemas
2134
+ */
2135
+ static waypoints2RTZ10(M, z) {
2136
+ const b = [];
2137
+ return b.push('<?xml version="1.0" encoding="UTF-8"?>'), b.push('<route xmlns="http://www.cirm.org/RTZ/1/0" version="1.0">'), b.push(` <routeInfo routeName="${i.xmlEscape(M)}"></routeInfo>`), b.push(...i.toRTZWaypoints(z, 6)), b.push("</route>"), b.join(`
2138
+ `);
2139
+ }
2140
+ static toRTZWaypoints(M, z = 6) {
2141
+ const p = [];
2142
+ p.push(" <waypoints>");
2143
+ for (let b = 0; b < M.length; b++) {
2144
+ const c = M[b], O = b + 1, A = (c.lat ?? "").toFixed ? c.lat.toFixed(z).padEnd(z + 2, "0") : c.lat, W = (c.lng ?? "").toFixed ? c.lng.toFixed(z).padEnd(z + 2, "0") : c.lng, o = [`id="${O}"`, 'revision="0"'];
2145
+ if (c.name && o.push(`name="${i.xmlEscape(c.name)}"`), p.push(` <waypoint ${o.join(" ")}>`), p.push(` <position lat="${i.xmlEscape(A)}" lon="${i.xmlEscape(W)}" />`), b > 0) {
2146
+ const d = c.gcToPrevious ? "Orthodrome" : "Loxodrome";
2147
+ p.push(` <leg geometryType="${d}" />`);
2148
+ }
2149
+ const Y = [];
2150
+ if (c.description && Y.push(` <description>${i.xmlEscape(c.description)}</description>`), c.utc)
2151
+ Y.push(` <time>${i.xmlEscape(c.utc)}</time>`);
2152
+ else if (c.positionTime)
2132
2153
  try {
2133
- b.push(` <time>${i.xmlEscape(B.unix(p.positionTime).utc().format())}</time>`);
2154
+ Y.push(` <time>${i.xmlEscape(B.unix(c.positionTime).utc().format())}</time>`);
2134
2155
  } catch {
2135
2156
  }
2136
- if (p.cog !== void 0 && b.push(` <cog>${i.xmlEscape(p.cog)}</cog>`), p.sog !== void 0 && b.push(` <sog>${i.xmlEscape(p.sog)}</sog>`), c > 0) {
2137
- const Y = p.gcToPrevious ? "GreatCircle" : "RhumbLine";
2138
- b.push(` <leg geometryType="${Y}" />`);
2139
- }
2140
- b.push(" </waypoint>");
2157
+ c.cog !== void 0 && Y.push(` <cog>${i.xmlEscape(c.cog)}</cog>`), c.sog !== void 0 && Y.push(` <sog>${i.xmlEscape(c.sog)}</sog>`), Y.length && (p.push(" <extensions>"), p.push(...Y), p.push(" </extensions>")), p.push(" </waypoint>");
2141
2158
  }
2142
- return b.push(" </waypoints>"), b.push("</route>"), b.join(`
2143
- `);
2159
+ return p.push(" </waypoints>"), p;
2144
2160
  }
2145
2161
  /**
2146
2162
  * 路径转CSV (JRC ECDIS ROUTE SHEET格式)
2147
2163
  * @param name 路径名称
2148
2164
  * @param waypoints 途径点
2149
2165
  */
2150
- static waypoints2CSV(M, z, O = "H°M′") {
2166
+ static waypoints2CSV(M, z, p = "H°M′") {
2151
2167
  const b = [];
2152
2168
  b.push("// ROUTE SHEET exported by JRC ECDIS."), b.push("// <<NOTE>>This strings // indicate comment column/cells. You can edit freely."), b.push(`// V2601-1,<Normal>,${i.xmlEscape(M)}`), b.push("// WPT No.,LAT,,,LON,,,PORT[NM],STBD[NM],Arr. Rad[NM],Speed[kn],Sail(RL/GC)");
2153
2169
  for (let c = 0; c < z.length; c++) {
2154
- const p = z[c], A = c.toString().padStart(3, "0"), W = a.lat2pretty(p.lat, 6, O), o = a.lng2pretty(p.lng, 6, O), Y = p.port ? p.port : "***", d = p.stbd ? p.stbd : "***", R = p.arrRad ? p.arrRad : "***", T = p.speed ? p.speed : "***", r = p.gcToPrevious ? "GC" : c === 0 ? "" : "RL";
2170
+ const O = z[c], A = c.toString().padStart(3, "0"), W = a.lat2pretty(O.lat, 6, p), o = a.lng2pretty(O.lng, 6, p), Y = O.port ? O.port : "***", d = O.stbd ? O.stbd : "***", R = O.arrRad ? O.arrRad : "***", T = O.speed ? O.speed : "***", r = O.gcToPrevious ? "GC" : c === 0 ? "" : "RL";
2155
2171
  b.push(`${A},${W.H},${W.M},${W.direction},${o.H},${o.M},${o.direction},${Y},${d},${R},${T},${r}`);
2156
2172
  }
2157
2173
  return b.join(`
@@ -2162,18 +2178,18 @@ class i {
2162
2178
  * @param name 路径名称
2163
2179
  * @param waypoints 途径点
2164
2180
  */
2165
- static waypoints2XLSX(M, z, O = "H°M′") {
2181
+ static waypoints2XLSX(M, z, p = "H°M′") {
2166
2182
  const b = [];
2167
2183
  b.push('<?xml version="1.0"?>'), b.push('<?mso-application progid="Excel.Sheet"?>'), b.push(
2168
2184
  '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'
2169
2185
  ), b.push(' <Worksheet ss:Name="Route">'), b.push(" <Table>"), b.push(" <Row>"), b.push(` <Cell ss:MergeAcross="16"><Data ss:Type="String">${i.xmlEscape("ROUTE SHEET exported by JRC ECDIS.")}</Data></Cell>`), b.push(" </Row>"), b.push(" <Row>"), b.push(` <Cell ss:MergeAcross="16"><Data ss:Type="String">${i.xmlEscape(M)}</Data></Cell>`), b.push(" </Row>"), b.push(" <Row/>");
2170
2186
  const c = ["WPT No.", "LAT", "", "", "LON", "", "", "PORT[NM]", "STBD[NM]", "Arr. Rad[NM]", "Speed[kn]", "Sail(RL/GC)"];
2171
2187
  b.push(" <Row>");
2172
- for (const p of c)
2173
- b.push(` <Cell><Data ss:Type="String">${i.xmlEscape(p)}</Data></Cell>`);
2188
+ for (const O of c)
2189
+ b.push(` <Cell><Data ss:Type="String">${i.xmlEscape(O)}</Data></Cell>`);
2174
2190
  b.push(" </Row>");
2175
- for (let p = 0; p < z.length; p++) {
2176
- const A = z[p], W = p.toString().padStart(3, "0"), o = a.lat2pretty(A.lat, 6, O), Y = a.lng2pretty(A.lng, 6, O), d = A.port ? A.port : "***", R = A.stbd ? A.stbd : "***", T = A.arrRad ? A.arrRad : "***", r = A.speed ? A.speed : "***", e = A.gcToPrevious ? "GC" : p === 0 ? "" : "RL", S = [W, o.H, o.M, o.direction, Y.H, Y.M, Y.direction, d, R, T, r, e];
2191
+ for (let O = 0; O < z.length; O++) {
2192
+ const A = z[O], W = O.toString().padStart(3, "0"), o = a.lat2pretty(A.lat, 6, p), Y = a.lng2pretty(A.lng, 6, p), d = A.port ? A.port : "***", R = A.stbd ? A.stbd : "***", T = A.arrRad ? A.arrRad : "***", r = A.speed ? A.speed : "***", e = A.gcToPrevious ? "GC" : O === 0 ? "" : "RL", S = [W, o.H, o.M, o.direction, Y.H, Y.M, Y.direction, d, R, T, r, e];
2177
2193
  b.push(" <Row>");
2178
2194
  for (const s of S)
2179
2195
  b.push(` <Cell><Data ss:Type="String">${i.xmlEscape(s)}</Data></Cell>`);
@@ -2196,7 +2212,7 @@ class i {
2196
2212
  */
2197
2213
  static coordinatesSummary(M, z = 3) {
2198
2214
  if (M.length > 1) {
2199
- const O = M[0], b = M[M.length - 1], c = (O == null ? void 0 : O.positionTime) < (b == null ? void 0 : b.positionTime) ? B.unix(O == null ? void 0 : O.positionTime) : B.unix(b == null ? void 0 : b.positionTime), p = (O == null ? void 0 : O.positionTime) > (b == null ? void 0 : b.positionTime) ? B.unix(O == null ? void 0 : O.positionTime) : B.unix(b == null ? void 0 : b.positionTime), A = Math.round(p.diff(c, "hours", !0) * 100) / 100, W = this.generateRouteAccordingToWaypoints(M, !0, !0), o = this.calculateRouteDistance(W), d = t0.inspectStoppages(M, z).reduce(
2215
+ const p = M[0], b = M[M.length - 1], c = (p == null ? void 0 : p.positionTime) < (b == null ? void 0 : b.positionTime) ? B.unix(p == null ? void 0 : p.positionTime) : B.unix(b == null ? void 0 : b.positionTime), O = (p == null ? void 0 : p.positionTime) > (b == null ? void 0 : b.positionTime) ? B.unix(p == null ? void 0 : p.positionTime) : B.unix(b == null ? void 0 : b.positionTime), A = Math.round(O.diff(c, "hours", !0) * 100) / 100, W = this.generateRouteAccordingToWaypoints(M, !0, !0), o = this.calculateRouteDistance(W), d = t0.inspectStoppages(M, z).reduce(
2200
2216
  (T, r) => (T.duration += r.duration, T.distance += r.distance, T),
2201
2217
  { hours: 0, distance: 0, spd: 0, duration: 0 }
2202
2218
  );
@@ -2204,7 +2220,7 @@ class i {
2204
2220
  const R = A ? Math.round((o - d.distance) / (A - d.hours) * 100) / 100 : 0;
2205
2221
  return {
2206
2222
  begin: c.utc().format(),
2207
- end: p.utc().format(),
2223
+ end: O.utc().format(),
2208
2224
  distance: Math.round((o - d.distance) * 100) / 100,
2209
2225
  hours: Math.round((A - d.hours) * 100) / 100,
2210
2226
  avgSpeed: R,
@@ -2232,11 +2248,11 @@ class i {
2232
2248
  var Y, d, R;
2233
2249
  if (!((d = (Y = z == null ? void 0 : z.sample) == null ? void 0 : Y.hours) != null && d.length))
2234
2250
  return { routes: [], hour: void 0 };
2235
- const O = z.sample.hours.at(0), b = B.utc(M), c = B.utc(z.eta), p = b.isAfter(c) ? c : b;
2236
- let A = z.sample.all.find((T) => T.eta === p.format());
2251
+ const p = z.sample.hours.at(0), b = B.utc(M), c = B.utc(z.eta), O = b.isAfter(c) ? c : b;
2252
+ let A = z.sample.all.find((T) => T.eta === O.format());
2237
2253
  if (!A) {
2238
- const T = z.sample.all.filter((G) => B.utc(G.eta).isBefore(p)).at(-1), r = this.calculateSubRoute(T, z.route);
2239
- A = (R = this.calculateNextCoordinateAlongRoute(T, T.speed * p.diff(B(T.etd), "hours", !0), r)) == null ? void 0 : R.coordinate;
2254
+ const T = z.sample.all.filter((G) => B.utc(G.eta).isBefore(O)).at(-1), r = this.calculateSubRoute(T, z.route);
2255
+ A = (R = this.calculateNextCoordinateAlongRoute(T, T.speed * O.diff(B(T.etd), "hours", !0), r)) == null ? void 0 : R.coordinate;
2240
2256
  const { cFactor: e, cog: S, wxFactor: s, meteo: P } = T, l = Math.round(A.distanceFromPrevious * 1e4) / 1e4, t = Math.round((l + T.distanceFromStart) * 1e4) / 1e4;
2241
2257
  A = {
2242
2258
  ...A,
@@ -2247,12 +2263,12 @@ class i {
2247
2263
  distanceFromStart: t,
2248
2264
  distanceFromPrevious: l,
2249
2265
  meteo: P,
2250
- eta: p.format(),
2251
- etd: p.format()
2266
+ eta: O.format(),
2267
+ etd: O.format()
2252
2268
  };
2253
2269
  }
2254
2270
  A.distanceToGo = Math.round((z.distance - A.distanceFromStart) * 100) / 100, A.timeToGo = Math.round(c.diff(A.etd, "hours", !0) * 100) / 100;
2255
- const W = this.calculateRangeWaypoints(O, A, z.route);
2271
+ const W = this.calculateRangeWaypoints(p, A, z.route);
2256
2272
  return {
2257
2273
  routes: this.generateRouteAccordingToWaypoints(W),
2258
2274
  hour: A
@@ -2268,13 +2284,13 @@ class i {
2268
2284
  * hour: Coordinate
2269
2285
  * }
2270
2286
  */
2271
- static pickUTCSampleFromRoute(M, z, O) {
2287
+ static pickUTCSampleFromRoute(M, z, p) {
2272
2288
  var T;
2273
- const b = this.calculateSubRoute(z, O), c = this.calculateRouteDistance(b), p = c / z.speed, A = B.utc(M), W = B(z.etd), o = (T = this.calculateNextCoordinateAlongRoute(z, z.speed * A.diff(B(z.etd), "hours", !0), b)) == null ? void 0 : T.coordinate;
2289
+ const b = this.calculateSubRoute(z, p), c = this.calculateRouteDistance(b), O = c / z.speed, A = B.utc(M), W = B(z.etd), o = (T = this.calculateNextCoordinateAlongRoute(z, z.speed * A.diff(B(z.etd), "hours", !0), b)) == null ? void 0 : T.coordinate;
2274
2290
  o.speed = z.speed;
2275
2291
  const Y = W.clone().add(o.hourFromPrevious, "hour");
2276
- o.eta = Math.abs(Y.diff(A, "second")) < 2 ? A.format() : Y.format(), o.etd = o.eta, o.distanceFromStart = Math.round(o.distanceFromPrevious * 100) / 100, o.distanceToGo = Math.round((c - o.distanceFromStart) * 100) / 100, o.timeToGo = Math.round(W.clone().add(p, "hour").diff(B(o.etd), "hour") * 100) / 100;
2277
- const d = this.calculateRangeWaypoints(z, o, O);
2292
+ o.eta = Math.abs(Y.diff(A, "second")) < 2 ? A.format() : Y.format(), o.etd = o.eta, o.distanceFromStart = Math.round(o.distanceFromPrevious * 100) / 100, o.distanceToGo = Math.round((c - o.distanceFromStart) * 100) / 100, o.timeToGo = Math.round(W.clone().add(O, "hour").diff(B(o.etd), "hour") * 100) / 100;
2293
+ const d = this.calculateRangeWaypoints(z, o, p);
2278
2294
  return {
2279
2295
  routes: this.generateRouteAccordingToWaypoints(d),
2280
2296
  hour: o
@@ -2287,13 +2303,13 @@ class i {
2287
2303
  */
2288
2304
  static includedAngle(M, z) {
2289
2305
  Q == null || Q.debug("calculate bearing via: %j", { bearing: M, degree: z });
2290
- let O = Math.abs(M % 360 - (z % 360 || 0));
2291
- return O = O > 180 ? 360 - O : O, O;
2306
+ let p = Math.abs(M % 360 - (z % 360 || 0));
2307
+ return p = p > 180 ? 360 - p : p, p;
2292
2308
  }
2293
2309
  }
2294
2310
  let I;
2295
2311
  try {
2296
- I = _.getLogger("vessel");
2312
+ I = j.getLogger("vessel");
2297
2313
  } catch {
2298
2314
  } finally {
2299
2315
  }
@@ -2303,22 +2319,22 @@ class V0 {
2303
2319
  * @param raw
2304
2320
  */
2305
2321
  static convert2Geojson(M) {
2306
- var O, b, c;
2322
+ var p, b, c;
2307
2323
  const z = f.featureCollection([]);
2308
- for (const p of M) {
2309
- const A = (O = p.history) == null ? void 0 : O[0];
2310
- if (p.forecasts) {
2324
+ for (const O of M) {
2325
+ const A = (p = O.history) == null ? void 0 : p[0];
2326
+ if (O.forecasts) {
2311
2327
  A && A.wind && (A.wind.kts = A.kts);
2312
- for (const W of p.forecasts) {
2328
+ for (const W of O.forecasts) {
2313
2329
  let o;
2314
- const Y = [], d = [], R = B(W.date).utc(), T = `${p.name}-${W.model}`;
2330
+ const Y = [], d = [], R = B(W.date).utc(), T = `${O.name}-${W.model}`;
2315
2331
  for (const e in W == null ? void 0 : W.hours) {
2316
2332
  const S = W.hours[e];
2317
2333
  o = o || S;
2318
2334
  const s = R.clone().add(Number(e), "hour"), P = f.point([S.lng, S.lat], {
2319
2335
  model: W.model,
2320
- name: p.name,
2321
- nameCn: p.nameCn,
2336
+ name: O.name,
2337
+ nameCn: O.nameCn,
2322
2338
  date: s.format(),
2323
2339
  hour: Number(e),
2324
2340
  format: s.format("MMM-DD/HHmm[Z]"),
@@ -2343,8 +2359,8 @@ class V0 {
2343
2359
  }
2344
2360
  const S = f.point([A.lng, A.lat], {
2345
2361
  model: W.model,
2346
- name: p.name,
2347
- nameCn: p.nameCn,
2362
+ name: O.name,
2363
+ nameCn: O.nameCn,
2348
2364
  date: e.format(),
2349
2365
  hour: 0,
2350
2366
  format: e.format("MMM-DD/HHmm[Z]"),
@@ -2361,9 +2377,9 @@ class V0 {
2361
2377
  if (z.features.push(...d), (Y == null ? void 0 : Y.length) > 1) {
2362
2378
  const e = f.lineString(a.convertToMonotonicLng2(Y), {
2363
2379
  date: (A == null ? void 0 : A.updated) || (R == null ? void 0 : R.format()),
2364
- id: p.id || p.name,
2380
+ id: O.id || O.name,
2365
2381
  model: W.model,
2366
- name: p.name,
2382
+ name: O.name,
2367
2383
  category: T,
2368
2384
  type: "forecast",
2369
2385
  movement: r
@@ -2372,21 +2388,21 @@ class V0 {
2372
2388
  }
2373
2389
  }
2374
2390
  }
2375
- if (z.features.sort((W, o) => W.properties.type === "forecast" && o.properties.type === "forecast" && W.geometry.type === "Point" && o.geometry.type === "Point" ? B(W.properties.date).valueOf() - B(o.properties.date).valueOf() : 0), (b = p.history) != null && b.length) {
2376
- const W = [], o = B(A == null ? void 0 : A.updated).utc(), Y = B((c = p.history) == null ? void 0 : c.at(-1).updated).utc(), d = o.diff(Y, "h") % 24 > 2 ? 24 : 12;
2377
- for (const R of p.history) {
2391
+ if (z.features.sort((W, o) => W.properties.type === "forecast" && o.properties.type === "forecast" && W.geometry.type === "Point" && o.geometry.type === "Point" ? B(W.properties.date).valueOf() - B(o.properties.date).valueOf() : 0), (b = O.history) != null && b.length) {
2392
+ const W = [], o = B(A == null ? void 0 : A.updated).utc(), Y = B((c = O.history) == null ? void 0 : c.at(-1).updated).utc(), d = o.diff(Y, "h") % 24 > 2 ? 24 : 12;
2393
+ for (const R of O.history) {
2378
2394
  const T = B(R.updated).utc(), r = T.isSameOrBefore(o) || T.isSame(Y);
2379
2395
  r && o.add(-d, "h");
2380
2396
  const e = f.point([R.lng, R.lat], {
2381
- name: p.name,
2382
- nameCn: p.nameCn,
2397
+ name: O.name,
2398
+ nameCn: O.nameCn,
2383
2399
  date: T.format(),
2384
2400
  format: T.format("MMM-DD/HHmm[Z]"),
2385
2401
  pressure: R.pressure > 1e4 ? a.roundPrecision(R.pressure / 100, 0) : a.roundPrecision(R.pressure, 0),
2386
2402
  kts: R.kts,
2387
2403
  level: R.type,
2388
2404
  type: "history",
2389
- category: `${p.name}-history`,
2405
+ category: `${O.name}-history`,
2390
2406
  wind: R.wind,
2391
2407
  movement: R.movement,
2392
2408
  important: r
@@ -2395,7 +2411,7 @@ class V0 {
2395
2411
  }
2396
2412
  if (W.length === 1 && W.push(W[0]), W.length > 1) {
2397
2413
  const R = f.lineString(a.convertToMonotonicLng2(W), {
2398
- name: p.name,
2414
+ name: O.name,
2399
2415
  type: "history",
2400
2416
  updated: A == null ? void 0 : A.updated,
2401
2417
  pressure: (A == null ? void 0 : A.pressure) > 1e4 ? a.roundPrecision((A == null ? void 0 : A.pressure) / 100, 0) : a.roundPrecision(A == null ? void 0 : A.pressure, 0),
@@ -2414,12 +2430,12 @@ class V0 {
2414
2430
  * @param step
2415
2431
  */
2416
2432
  static interpolate(M, z = 3) {
2417
- var c, p, A, W;
2418
- const O = (c = M == null ? void 0 : M.data) == null ? void 0 : c.features.filter((o) => o.geometry.type === "LineString" && o.properties.type === "forecast"), b = [];
2419
- for (const o of O) {
2433
+ var c, O, A, W;
2434
+ const p = (c = M == null ? void 0 : M.data) == null ? void 0 : c.features.filter((o) => o.geometry.type === "LineString" && o.properties.type === "forecast"), b = [];
2435
+ for (const o of p) {
2420
2436
  const Y = o.properties.name, d = o.properties.model, R = o.properties.showCircle, T = o.properties.disabled, r = B(o.properties.date).utc();
2421
2437
  let e = z * 60;
2422
- const S = (p = M == null ? void 0 : M.data) == null ? void 0 : p.features.filter(
2438
+ const S = (O = M == null ? void 0 : M.data) == null ? void 0 : O.features.filter(
2423
2439
  (l) => l.geometry.type === "Point" && l.properties.type === "forecast" && l.properties.category === `${Y}-${d}`
2424
2440
  );
2425
2441
  let s, P = r.clone().add(e, "minute").set({ minute: 0, second: 0, millisecond: 0 });
@@ -2454,8 +2470,8 @@ class V0 {
2454
2470
  * @param options
2455
2471
  */
2456
2472
  static accelPassageAt(M, z) {
2457
- const { t1: O, t2: b, hr: c, hours: p } = this.tropicalCenterTwin(M, 24, z);
2458
- return { t1: O, t2: b, hr: c, hours: p };
2473
+ const { t1: p, t2: b, hr: c, hours: O } = this.tropicalCenterTwin(M, 24, z);
2474
+ return { t1: p, t2: b, hr: c, hours: O };
2459
2475
  }
2460
2476
  /**
2461
2477
  * 计算最佳绕航点
@@ -2468,32 +2484,32 @@ class V0 {
2468
2484
  * @param speed 前进速度
2469
2485
  * @param options
2470
2486
  */
2471
- static diversionPassageAt(M, z, O, b = {}) {
2472
- const { t1: c, t2: p, hr: A, hours: W } = this.tropicalCenterTwin(z, 24, b);
2473
- if (c && p) {
2487
+ static diversionPassageAt(M, z, p, b = {}) {
2488
+ const { t1: c, t2: O, hr: A, hours: W } = this.tropicalCenterTwin(z, 24, b);
2489
+ if (c && O) {
2474
2490
  if (!b.debug) {
2475
- const r = i.calculateDistance(M, c), e = i.calculateDistance(M, p);
2476
- if (r > 2 * O && e > 2 * O)
2491
+ const r = i.calculateDistance(M, c), e = i.calculateDistance(M, O);
2492
+ if (r > 2 * p && e > 2 * p)
2477
2493
  return I == null || I.info("[%s] the distance between from and t1(%d) and t2(%d) is enough, no need diversion: %j", b.requestId, r, e, {
2478
2494
  from: M,
2479
2495
  t1: c,
2480
- t2: p,
2496
+ t2: O,
2481
2497
  hr: A
2482
2498
  }), {};
2483
2499
  }
2484
- const o = i.calculateBearing(M, c), Y = i.calculateBearing(c, p), d = Math.abs(o - Y);
2500
+ const o = i.calculateBearing(M, c), Y = i.calculateBearing(c, O), d = Math.abs(o - Y);
2485
2501
  let R = 0;
2486
2502
  d < 180 ? R = d + 90 : d >= 180 && (R = d - 90);
2487
- const T = i.calculateCoordinate(c, R, O);
2503
+ const T = i.calculateCoordinate(c, R, p);
2488
2504
  return I == null || I.info("[%s] the right tangent position: %j", b.requestId, {
2489
2505
  from: M,
2490
2506
  t1: c,
2491
- t2: p,
2492
- radius: O,
2507
+ t2: O,
2508
+ radius: p,
2493
2509
  bearing1: o,
2494
2510
  bearing2: Y,
2495
2511
  right: T
2496
- }), { at: T, t1: c, t2: p, hr: Number(A), hours: W };
2512
+ }), { at: T, t1: c, t2: O, hr: Number(A), hours: W };
2497
2513
  }
2498
2514
  return {};
2499
2515
  }
@@ -2507,23 +2523,23 @@ class V0 {
2507
2523
  * @param radius 与台风中心的距离
2508
2524
  * @param options
2509
2525
  */
2510
- static driftPassageAt(M, z, O, b = {}) {
2511
- const { t1: c, t2: p, hr: A, hours: W } = this.tropicalCenterTwin(z, 24, b);
2512
- if (c && p) {
2526
+ static driftPassageAt(M, z, p, b = {}) {
2527
+ const { t1: c, t2: O, hr: A, hours: W } = this.tropicalCenterTwin(z, 24, b);
2528
+ if (c && O) {
2513
2529
  if (!b.debug) {
2514
- const T = i.calculateDistance(M, c), r = i.calculateDistance(M, p);
2515
- if (T > 2 * O && r > 2 * O)
2530
+ const T = i.calculateDistance(M, c), r = i.calculateDistance(M, O);
2531
+ if (T > 2 * p && r > 2 * p)
2516
2532
  return I == null || I.info("[%s] the distance between from and t1(%d) and t2(%d) is enough, no need drifting: %j", b.requestId, T, r, {
2517
2533
  from: M,
2518
2534
  t1: c,
2519
- t2: p,
2535
+ t2: O,
2520
2536
  hr: A
2521
2537
  }), {};
2522
2538
  }
2523
- const o = i.calculateBearing(M, c), Y = i.calculateBearing(c, p), d = i.calculateDistance(M, c);
2524
- return { at: i.calculateCoordinate(c, o - Y + 180, O < d ? O : d), t1: c, t2: p, hr: Number(A), hours: W };
2539
+ const o = i.calculateBearing(M, c), Y = i.calculateBearing(c, O), d = i.calculateDistance(M, c);
2540
+ return { at: i.calculateCoordinate(c, o - Y + 180, p < d ? p : d), t1: c, t2: O, hr: Number(A), hours: W };
2525
2541
  } else
2526
- return I == null || I.info("[%s] no need drift: %j", b.requestId, { from: M, t1: c, t2: p, hr: A }), {};
2542
+ return I == null || I.info("[%s] no need drift: %j", b.requestId, { from: M, t1: c, t2: O, hr: A }), {};
2527
2543
  }
2528
2544
  /**
2529
2545
  * 获取台风中心点对
@@ -2533,42 +2549,42 @@ class V0 {
2533
2549
  * @returns { t1: 当前台风中心点, t2: 未来hr小时台风中心点, hr: 未来台风中心点与当前台风中心点之间的时间差, hours: 未来24小时内所有台风中心点 }
2534
2550
  * @private
2535
2551
  */
2536
- static tropicalCenterTwin(M, z = 24, O = {}) {
2552
+ static tropicalCenterTwin(M, z = 24, p = {}) {
2537
2553
  var Y, d, R, T, r;
2538
2554
  let b = {};
2539
2555
  (Y = M.forecasts) == null || Y.forEach((e) => {
2540
2556
  b = { ...e.hours, ...b };
2541
2557
  });
2542
2558
  const c = ((d = M == null ? void 0 : M.history) == null ? void 0 : d[0]) || (b == null ? void 0 : b[(R = Object.keys(b)) == null ? void 0 : R[0]]);
2543
- I == null || I.info("[%s] the first tropical center: %j", O.requestId, c);
2544
- let p = (T = Object.keys(b || {}).filter((e) => Number(e) <= (z < 0 ? 24 : z))) == null ? void 0 : T.at(-1);
2545
- p || (p = (r = Object.keys(b || {}).filter((e) => Number(e) <= (z < 0 ? 24 : 2 * z))) == null ? void 0 : r.at(-1));
2546
- const A = b == null ? void 0 : b[p || -1];
2547
- I == null || I.info("[%s] the second tropical center: %j in %d hrs", O.requestId, A, p);
2548
- const W = Object.keys(b || {}).filter((e) => Number(e) <= Number(p)), o = { 0: c };
2559
+ I == null || I.info("[%s] the first tropical center: %j", p.requestId, c);
2560
+ let O = (T = Object.keys(b || {}).filter((e) => Number(e) <= (z < 0 ? 24 : z))) == null ? void 0 : T.at(-1);
2561
+ O || (O = (r = Object.keys(b || {}).filter((e) => Number(e) <= (z < 0 ? 24 : 2 * z))) == null ? void 0 : r.at(-1));
2562
+ const A = b == null ? void 0 : b[O || -1];
2563
+ I == null || I.info("[%s] the second tropical center: %j in %d hrs", p.requestId, A, O);
2564
+ const W = Object.keys(b || {}).filter((e) => Number(e) <= Number(O)), o = { 0: c };
2549
2565
  for (const e of W)
2550
2566
  o[e] = b[e];
2551
- return { t1: c, t2: A, hr: Number(p), hours: o };
2567
+ return { t1: c, t2: A, hr: Number(O), hours: o };
2552
2568
  }
2553
2569
  static pickIndex(M, z) {
2554
- let O = 0;
2570
+ let p = 0;
2555
2571
  for (const b of M) {
2556
2572
  if (B(b.properties.date).isAfter(z))
2557
- return O === 0 ? -1 : O;
2558
- O++;
2573
+ return p === 0 ? -1 : p;
2574
+ p++;
2559
2575
  }
2560
- return O;
2576
+ return p;
2561
2577
  }
2562
- static computeNumber(M, z, O) {
2578
+ static computeNumber(M, z, p) {
2563
2579
  if (M)
2564
2580
  if (z) {
2565
2581
  if (isNaN(M) && isNaN(z) && typeof M != "string" && typeof z != "string") {
2566
2582
  const b = {};
2567
2583
  for (const c in M)
2568
- b[c] = this.computeNumber(M[c], z[c], O);
2584
+ b[c] = this.computeNumber(M[c], z[c], p);
2569
2585
  return b;
2570
2586
  }
2571
- return Math.round((M + (z - M) * O) * 100) / 100;
2587
+ return Math.round((M + (z - M) * p) * 100) / 100;
2572
2588
  } else
2573
2589
  return M;
2574
2590
  else